У меня есть собственный список, который я создал, который содержит полный путь к папке и номер соответствующей версии. Я сохраняю оба эти значения в списке. Я хочу, чтобы они получили наивысшие версии X и их соответствующие пути к папкам, хранящиеся в списке. Я боролся с этим некоторое время, но теперь пришло время помочь. Код, который я получил до сих пор выглядит следующим образом:Заказ и получение данных из пользовательского списка - C#
Это мой список классов:
class versionFolder
{
public int version { get; set; }
public string folderDIR { get; set; }
public versionFolder(int version, string folderDIR)
{
this.version = version;
this.folderDIR = folderDIR;
}
}
Вот мой код для создания списка и добавление в нее элементов. Внизу я хочу распечатать содержимое списка (версии и пути к папкам указанных версий), а затем внизу я хочу получить самые высокие версии X, заданные переменной глубины.
public highestVersion(string dsPath, int depth)
{
int num = depth;
List<versionFolder> allVersions = new List<versionFolder>(); //list to hold all version numbers and full path
string folder = dsPath;
string[] versionDIRS = Directory.GetDirectories(folder);
foreach (string folderr in versionDIRS)
{
string[] fullpath = folderr.Split('\\');
string folderName = fullpath[fullpath.Length - 1]; //returns VXX-XXXXXXXX (version folder name)
string vString = "6"; //sets a version number, this is actually data extrapolated from the folder path
allVersions.Add(new versionFolder(Convert.ToInt32(vString), fullpath.ToString()));
}
foreach (var version in allVersions)
{
Console.WriteLine("Amount is {0}", version.version);
Console.WriteLine("Amount is {0}", folderDIR.folderDIR);
}
var testtt = allVersions.OrderByDescending(n => n.version).Take(Convert.ToInt32(num));
Console.Write("Test:" + testtt);
}
Выходной код подходит для номера версий, но я не могу получить папкуDIR. Выход для получения наибольших значений X возвращает это:
Test:System.Linq.Enumerable+<TakeIterator>d__3a`1[Importer.versionFolder]
Любая помощь будет оценена.
EDIT: Я думал, что это может быть, стоит отметить, что у меня использовать .NET 3.5
В: allVersions.Add (новый versionFolder (Convert.ToInt32 (vString), fullpath.ToString())); вы преобразовываете массив строк fullpath в строку. Но фактическая папка versionFolderDir находится в строковом строковом массиве формата – SarveshwarPM