是否有更好的方法来编码哪里这个:
IDictionary<string, string> p = new Dictionary<string, string>();
p.Add("Apple", "1");
p.Add("Orange", "2");
p.Add("Pear", "3");
p.Add("Grape", "4");
p.Add("Pineapple", "5");
//This is a unique list
var retVal = p.Where(k => k.Key.Contains("Apple") || k.Key.Contains("Pear") || k.Key.Contains("Grape"));
以下的一些历史
我有一个字典字典,如下所示:
IDictionary<string,string>
内容如下:
Apple,1
Orange,2
Pear,3
Grape,4
...many more
我如何只返回我的字典中的一些项目
if (true)
{
//return only 3 apple,pear&grape items out of the dozens in the list into a new variable
}
答案 0 :(得分:4)
你可以采取前3项......
theDictionary.Take(3);
或过滤并拍摄特定物品......
string[] itemsIWant = { "Apple", "Pear", "Grape" };
theDictionary.Where(o => itemsIWant.Contains(o.Key));
或随机排序并拍摄3 ...
Random r = new Random();
theDictionary.OrderBy(o => r.Next()).Take(3);
答案 1 :(得分:0)
答案 2 :(得分:0)
这实际上取决于您想要实现的过滤类型。但你可以通过Linq实现它。
如果您只想获得前3个项目,可以这样做:
theDictionary.Take(3);
如果你想获得以'G'开头的前3个项目,你将会这样做:
theDictionary.Where(kv => kv.Key.StartsWith("G")).Take(3);
如果你想获得以'G'开头的前三个项目,无论是否套管,你都会这样做:
theDictionary.Where(kv => kv.Key.ToLower().StartsWith("g")).Take(3);
最后但并非最不重要的是,如果你想随机获得3件物品,你会这样做:
Random rand = new Random();
theDictionary.OrderBy(kv => rand.Next()).Take(3);