[英]How can I make a dictionary, with keys, from an array and list?
我有這兩個 collections:
List<string> files =
Directory.GetFiles(FilePath).ToList().Select(file => new FileInfo(file).Name).ToList();
string[] dirs = Directory.GetDirectories(FilePath);
但是,我想將這兩個都添加到一個空字典中,所以我有一個包含路徑和文件的大字典。 我不確定的事情,我如何/在哪里指定密鑰?
對於文件,我希望文件名作為鍵,對於目錄,我希望最后一個目錄(例如 a/b/c 中的 c)作為鍵。 我知道如何使用 FileInfo/DirectoryInfo 類獲取此信息,但不確定如何將其包含在從上述創建字典中?
我正在使用 .NET V3.5 和 LINQ 很好。
謝謝
對於文件,你可以做
var filesDictonary = Directory.GetFiles(FilePath)
.Select(file => new FileInfo(file))
.ToDictionary(f => f.Name, f => f);
對於目錄,
var directoriesDictonary = Directory.GetDirectories(FilePath)
.Select(d => new DirectoryInfo(d))
.ToDictionary(d => d.Name, d => d);
如果您已經擁有所需的信息,並且知道如何正確配對。 您只需使用此語句將其添加到字典中。
Dictionary<string, string> myDict = new Dictionary<string, string>();
myDict.Add(file, directory);
除非我不理解你? 你問如何添加它們? 或者如何正確地將文件與目錄配對?
到目前為止,我最喜歡Bala R的 LINQ 答案(他得到了我的支持),但值得一提的是,在一般情況下,當你想將List<string>
和string[]
組合成Dictionary<string, string>
,您始終可以使用基本for
循環 go :
var MyDictionary = new Dictionary<string, string>();
for (int i = 0; i < Math.Min(MyList.Count, MyArray.Length); i++)
{
MyDictionary.Add(MyList[i], MyArray[i]);
}
這可能有點無聊,但它適用於任何一對IEnumerable<T>
collections。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.