我有一个字典,现在我想通过在c#中使用Linq在字典值中执行关系操作来选择密钥。
示例:如果字典包含{(1,392.3),(2,612),(3,981),(4,344.23)...}
现在我想按条件选择一个键if(dictionary.Value小于localVar)然后选择键。
如果您知道,请提供您宝贵的答案。
最佳
Parthi
答案 0 :(得分:1)
可以有多个符合条件的值 -
Dictionary<int, decimal> dict = new Dictionary<int,decimal>();
dict.Add(1, 392.3m);
dict.Add(2, 612m);
dict.Add(3, 981m);
dict.Add(4, 344.23m);
List<int> Result = dict.Where(x => x.Value < 400).Select(x => x.Key).ToList();
答案 1 :(得分:1)
你走了。 : - )
示例:如果字典包含{(1,392.3),(2,612),(3,981),(4,344.23)...}
private IDictionary<int, decimal> myDict = new Dictionary<int,decimal>
{
{1, 392.3m},
{2, 612m},
{3, 981m},
{4, 344.23m}
}
现在我想按条件选择一个键if(dictionary.Value小于localVar)然后选择键。
public int[] GetKeysWhereValueLessThan(decimal value)
{
return myDict
.Where(kv => kv.Value < value)
.Select(kv => kv.Key)
.ToArray();
}
答案 2 :(得分:1)
Dictionary<int, double> d = new Dictionary<int, double>();
//(1,392.3) , (2, 612),(3,981),(4,344.23)
d.Add(1, 392.3);
d.Add(2, 612);
d.Add(3, 987);
d.Add(4, 344.23);
//if(dictionary.Value less than localVar)
double localVar = 500;
var res = d.Where(i => i.Value < localVar).Select(j => j.Key);
foreach(var v in res) Console.WriteLine(v);
//1
//4
编辑:我的速度不够快......