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それぞれが内部のエントリと完全に一致するかどうかを確認する場合は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

One more. Linq is cool :)

To check if allID contains the contents of any entry in selectedID

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

resultList would contain { "a1", "a3", "a5" }

于 2013-03-22T03:11:06.563 に答える