Dictionary<int, String> loadData = new Dictionary();
// File contains a list of filenames say for ex. 5 filenames
foreach (var file in filenames)
{
// I want to assign like this
loadData[id]=file;
}
如何在C#中指定loadData(key,value)
,以便我可以访问loadData[5] = "hello.txt"
;
答案 0 :(得分:1)
首先:您使用的new Dictionary()
无效。请改用new Dictionary<int, String>()
。
第二:id
来自哪里?如果它只是一个计数器,您可以执行以下操作:
Dictionary<int, String> loadData = new Dictionary<int, String>();
int id = 0;
foreach (string file in filenames)
{
loadData.Add(id++, file);
}
答案 1 :(得分:1)
如果id
只是一个计数器,你可以使用数组,但仍然可以写loadData[5]="hello.txt";
var loadData = filenames.ToArray();
loadData[5]="hello.txt";
答案 2 :(得分:0)
保留一个柜台。
int i = 0;
foreach (var file in filenames) {
++i;
loadData[i] = file;
}
这会将filenames
中的第一项指定给loadData[1]
。
答案 3 :(得分:0)
我假设ID
,它不是file
中的值,而是循环中项目的索引
filenames.ForEach(x => loadData.Add(loadData.Count, x));
这会给你
Key Value
0 First filename
1 Second filename
2 Third filename
etc...
如果我理解正确,这就是你想要的。或者你有一个单独的Key
并希望通过某种索引(如列表)访问字典?
答案 4 :(得分:0)
这很容易。 你可以用它。
loadData.Add(1,"fileName1");
或者你把这一行放在循环中。
答案 5 :(得分:0)
使用ToDictionary()
扩展方法...
int id = 1;
var loadData = filenames.ToDictionary(x => id++);
答案 6 :(得分:0)
另一种方法。
var loadData = fileNames
.Select((fn,index)=> new {key = index, value = fn})
.ToDictionary(x=> x.key, x=> x.value);