0

LINQ を使用して、別のリストと一致するアイテムのリストのリストを取得するにはどうすればよいですか?

例:

List<string> data = new List<string>();
List<List<string>> datas = new List<List<string>>();
List<string> dataSearch = new List<string>();

dataSearch.Add("01");
dataSearch.Add("02");

data.Add("01");
data.Add("Book");
data.Add("9");
datas.Add(data);

data = new List<string>();
data.Add("02");
data.Add("Pen");
data.Add("2");
datas.Add(data);

data = new List<string>();
data.Add("03");
data.Add("Pencil");
data.Add("5");
datas.Add(data);

期待される結果List<List<string>>:

List<string> ("01", "Book", "9")
List<string> ("02", "Pen", "2")

私は試します

var result = datas.Where(x => x[0].Contains(dataSearch)).ToList();

エディターで赤い下線が引かれました。

4

2 に答える 2

3

これはあなたが探しているものです:

List<string> data = new List<string>();
List<List<string>> datas = new List<List<string>>();
List<string> dataSearch = new List<string>();

dataSearch.Add("01");
dataSearch.Add("02");

// same as your code

var result = datas.Where(i => dataSearch.Contains(i[0])).ToList();
于 2013-10-04T10:59:12.730 に答える
-1

の 3 つの項目がList<List<string>>密接な関係にある場合は、このためのクラスを作成してから、これらのオブジェクトのリストを作成することをお勧めします。

Class StationaryItem
         {
           int ItemCode;
           String ItemName;
           float Price;

         public StationaryItem(int Code, string ItemName,float Price)
            {
              this.ItemCode = Code;
              this.ItemName = ItemName;
              this.Price = Price;
            }
         }

public static void Main ()
      {
         List<StationaryItem> ItemList = new List<StationaryItems>
         ItemList.Add( new StationaryItem(01,"Pen",20));
         ItemList.Add( new StationaryItem(02,"Pencil",5));

         //After you make a class like this you can use Linq to manuplate easily
      }
于 2013-10-04T11:06:17.937 に答える