我在搜索字典时遇到了问题.
Dictionary<string,string[]> dic = new Dictionary<string,string[]>(){ {"a",new string[](){"a_val","2"}},{"b",new string[](){"b_val","1"}},"0"}} };
我需要返回一个键列表,其中stingArray [1]元素的值大于“1”,如:
List<string> list = new List<string>{ "a" };
因为我并不擅长使用LINQ,所以我目前的解决方案是遍历Dictionary并将键添加到新列表中.但是这种方法看起来很丑陋,我正试图找到问题的另一种解决方案.
解决方法
没有任何错误处理:
var list = dic.Where(x => int.Parse(x.Value[1]) > 1) .Select(x => x.Key) .ToList();
使用Where语句,将过滤Value [1]大于1的条目,并使用Select语句选择此条目中的键.至少使用ToList方法在List中转换该集合.
有关详细信息,请查看101 LINQ Samples in C#