使用linq获取KeyValuePair List的键到int []数组

时间:2014-04-21 04:31:08

标签: c# arrays linq

拥有名为Info {/ p>的List<KeyValuePair<int,string>>

1  Sur
2  Hn
3  uh
4  er
5  Sur

我希望获得所有具有值字符串"Sur" (1,5)的ID,然后将此结果转换为int数组。

我正在尝试像

这样的东西
int[] productsArray = Info.Select(kvp => kvp.Key ).Where(x => x.ToString () == "Sur").ToArray();

据我所知,x In查询是将密钥与“Sur”进行比较,这是不正确的。

如何从像

这样的查询中正确获取整数数组

2 个答案:

答案 0 :(得分:6)

尝试这样的事情

List<KeyValuePair<int,string>> infos;

int[] keys = infos.Where(kvp => kvp.Value == "Sur").Select(kvp => kvp.Key).ToArray();

答案 1 :(得分:2)

我希望这是你的答案。我觉得你的查询方式有些错误。

  info.Where(cc => cc.Value == "Sur").Select(cc => cc.Key).ToArray();