我有几个SortedDictionaries
。我真的不知道如何通过用户输入从中获取特定值。
这里我要在字典中添加信息:
public SortedDictionary<int, List<double>> addqtyScrews()
{
qtyScrews.Add(5, new List<double>()); // key 5
qtyScrews[5].Add(0);
qtyScrews[5].Add(0.5);
qtyScrews[5].Add(1);
qtyScrews[5].Add(1.5);
qtyScrews[5].Add(4.5);
qtyScrews[5].Add(5);
qtyScrews.Add(6, new List<double>()); // key 6
qtyScrews[6].Add(0);
qtyScrews[6].Add(0.5);
qtyScrews[6].Add(1);
qtyScrews[6].Add(1.5);
qtyScrews[6].Add(2);
qtyScrews[6].Add(2.5);
qtyScrews[6].Add(3);
}
我想要的功能,用户输入他们想要的键值和值:
public void Screws()
{
int kID = 5; // Key ID
double vID = 4.5; // Value ID
var SelectionScrews = qtyScrews.FirstOrDefault(x => x.Key == kID and y => y.Value == vID).Key;
} // not correct code, but its what i want it to do pretty much.
如何让“和”这个词在这里工作?
答案 0 :(得分:1)
答案是:
var SelectionScrews = addqtyScrews().FirstOrDefault(x => x.Key == kID && x.Value.Contains(vID)).Key;
但是,我怀疑你正在寻找的是:
var SelectionScrews = addqtyScrews().FirstOrDefault(x => x.Key == kID && x.Value.Contains(vID)).Value;
请注意.Value
代替.Key
,后者将返回5,前者是值列表。
此外,我建议使用以下更紧凑的表示法进行对象初始化:
qtyScrews.Add(5, new List<double>() { 0, 0.5, ...., 5 });
qtyScrews.Add(6, new List<double>() { 0, 0.5, ...., 3 });
以便用2行替换10行。