1
List<string>resultList=new List<string>();
List<string>allID=new List<string>();
allID.Add("a1");
allID.Add("a2");
allID.Add("a3");
allID.Add("a4");
allID.Add("a5");
allID.Add("a6");
List<string>selectedID=new List<string>();
selectedID.Add("1");
selectedID.Add("3");
selectedID.Add("5");
resultList=(from a in allID where a.Contains(**one of the ID form selectedID**) select a).ToList();

可以告诉我工作版本吗?

4

4 回答 4

2

如果要检查每个是否a与 by 中的条目完全匹配selectedID,请使用:

(from a in allID where selectedID.Contains(a) select a).ToList()

这不会返回与您的示例代码匹配的任何内容。


如果要检查每个字符串是否a包含 中任何条目的内容selectedID,请使用:

(from a in allID
 where selectedID.Any(s => a.Contains(s))
 select a).ToList()

这将返回{ "a1", "a3", "a5" }

于 2013-03-22T02:50:53.127 回答
1

我认为你想要做的是:

resultList = 
    (from a in allID 
     where selectedID.Any(s => ("a" + s) == a)
     select a)
    .ToList();

它将返回allID也存在的项目selectedID(带有一些格式调整)。

于 2013-03-22T02:50:57.730 回答
1
resultList = allID.Where(x => selectedID.Select(s => "a" + s).Contains(x))
                  .ToList<string>();
于 2013-03-22T02:52:17.760 回答
0

多一个。Linq 很酷:)

检查 allID 是否包含 selectedID 中任何条目的内容

resultList = allID.Where(all => selectedID.Any(select => all.Contains(select))).ToList();

resultList 将包含 { "a1", "a3", "a5" }

于 2013-03-22T03:11:06.563 回答