我有我創建的自定義列表,其中包含完整的文件夾路徑和相應的版本號。我將這兩個值都存儲在一個列表中。我想讓他們獲得存儲在列表中的最高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);
}
輸出對於版本號很好,但我無法獲得folderDIR。 爲獲得最高的X值輸出返回此:
Test:System.Linq.Enumerable+<TakeIterator>d__3a`1[Importer.versionFolder]
任何幫助將非常感激。
編輯:我想這可能是值得一提的是,我在使用.NET 3.5
at:allVersions.Add(new versionFolder(Convert.ToInt32(vString),fullpath.ToString()));您正在將完整路徑字符串數組轉換爲字符串。但實際版本文件夾的文件夾字符串不是字符串數組格式 – SarveshwarPM