[英]How can you select and filter dictionary keys based on their values using Linq?
給定一個Dictionary<int, double>
如何選擇值小於localThreshold
的鍵?
例如,如果我有:
var someDict = new Dictionary<int, double>() {
{1, 392.3},
{2, 612},
{3, 981} ... };
如果localThreshold
為 400(假設沒有其他字典值小於 400),我想獲得值 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,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();
}
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
編輯:我不夠快......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.