创建一个从列表
问题描述:
查找我想从列表中创建一个Lookup
创建一个从列表
List<User> users = new List<User>() { new User() { id = "1", code = "a" },
new User() {id="2", code= "a" },
new User() {id="3", code= "a" },
new User() {id="4", code= "b" },
new User() {id="1", code= "b" }
};
我写的代码是
Lookup<string, string> lkup = (Lookup<string, string>)users.ToLookup(k => k.id, k => k.code);
虽然,这个工程,我endup的查找中,我可以” t找到价值。
其次,我不明白为什么我不能在你原来的代码创建一个使用的东西Lookup
像
Lookup<string, string> lkup = users.ToLookup<string,string>(
答
值在那里。在你枚举它们之前你无法看到它们。下面将打印每个键,然后按自己的价值观下一行:
List<User> users = new List<User>() { new User() { id = "1", code = "a" },
new User() {id="2", code= "a" },
new User() {id="3", code= "a" },
new User() {id="4", code= "b" },
new User() {id="1", code= "b" }
};
Lookup<string, string> lkup = (Lookup<string,string>)users.ToLookup(x => x.id, x => x.code);
foreach(var k in lkup)
{
Console.WriteLine(k.Key);
foreach(var v in k)
{
Console.Write($"{v} ");
}
Console.WriteLine();
}
此:
Lookup<string, string> lkup = users.ToLookup<string,string>(k => k.id, k => k.code);
不会起作用,因为lkup
必须ILookup
不Lookup
ILookup<string, string> lkup = users.ToLookup(k => k.id, k => k.code);
威尔产生与铸造到Lookup
相同的东西。
下面是我用列表中的类:
class User
{
public string id = "";
public string code = "";
}
你是什么意思“无法找到该值”?你能举一个例子来看看价值和预期的结果吗? –
1.什么意思是“找不到价值”? 'lkup [“1”]'应该返回第一个用户的'代码'就好了。不过,你真的应该摆脱剧组,而只是使用'ILookup';向具体课堂施放是没有意义的。呃,因为这不是一个完整的陈述?您必须将参数传递给'ToLookup'并添加一个关闭的paren和一个分号。 –
@MikeHixson:我写了'var output = lkup.Where(l => l.Key ==“1”)。ToList();'并不能得到值 – Rajat