将字典分配给键值
本文关键字:键值 分配 字典 | 更新日期: 2023-09-27 18:21:13
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"
一样访问;
首先:您正在使用无法正常工作的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);
}
如果id
只是一个计数器,你可以使用数组,但仍然可以写入loadData[5]="hello.txt";
var loadData = filenames.ToArray();
loadData[5]="hello.txt";
保留一个计数器。
int i = 0;
foreach (var file in filenames) {
++i;
loadData[i] = file;
}
这会将filenames
中的第一项分配给loadData[1]
。
我假设ID
,它不是file
中的值,而是循环中项目的索引
filenames.ForEach(x => loadData.Add(loadData.Count, x));
这会给你
Key Value
0 First filename
1 Second filename
2 Third filename
etc...
如果我理解正确,这就是你想要的。或者您是否有单独的Key
并希望通过某种索引(如列表(访问字典?
这很容易。你可以使用它。
loadData.Add(1,"fileName1");
或者你把这条线放在循环中。
另一种方法。
var loadData = fileNames
.Select((fn,index)=> new {key = index, value = fn})
.ToDictionary(x=> x.key, x=> x.value);
使用 ToDictionary()
扩展方法...
int id = 1;
var loadData = filenames.ToDictionary(x => id++);