2016-10-27 5 views
2

私は部分値を含む文字列のリストを持っているリストのメンバーに含まれている、すなわち LINQ部分は、

var list = new List<string>{"A/B", "C/D"}; 

そして、私のDBに私はレコードを持っているような

  1. A/B/X
  2. X/C/V/B
  3. G/H/J
  4. C/D/D/C
  5. A/C
  6. A/B

だから私は今、listに含まれる値のいずれかで始まるDBからすべての項目を照会したいと思います。例1からは、4と6を返す必要があります。

私は.Where(x => list.Contains(x))のように問い合わせることができますが、LINQを使ってリストに含まれる項目で始まる値を選択する方法を理解することはできません。

var list = new List<string>{"A/B", "C/D"}; 
var query= context.YourDbSet.Where(e=>list.Any(a=>e.Column.StartWith(a)));// Column is a property of type string. 

とにかくここでの主なアイデアは、あなたのアイテムがlistの要素の一つで開始した場合、あなたがチェックしている:あなたはあなたのDBからデータを取得するためにEFを使用している、あなたは次の操作を行うことができますと仮定

+0

EFを使用していますか?その場合、エンティティを表示できますか? – octavioccl

+1

これは役に立ちますか? http://stackoverflow.com/questions/4970899/linq-to-sql-query-where-a-string-startswith-an-element-from-a-generic-list – cocojiambo

答えて

1

それはStartWith方法を使用してを行うことができます。 itemsコレクションが文字列のリストである場合は、

var query= items.Where(e=>list.Any(a=>e.StartWith(a)));