1

myListというList<string[]>があります。

   [0] "ABC" "Item Description Here" "Item Code Here"
   [1] "DEF" "Item Description Here" "Item Code Here"
   [3] etc, etc...

これは私がmyListに入力した方法です:

...
while (myReader.Read())
{
   string[] row = new string[myInt];

   for (int i = 0; i < myInt; i++)
   {
      row[i] = myReader[i].ToString();
   }

myList.Add(row);    
}
...

次に、myListを検索して、最初の文字列がキーワード( "ABC"、 "DEF"など)と一致する1つ以上のstring[]を含むnewList[]という新しいList<string[]>を返す必要があります。それ、どうやったら出来るの?

4

3 に答える 3

3

1)1つのキーワードのみを検索する場合:

var result = myList.Where(s=>s[0].Equals("\"ABC\"")).ToList();

2)次checklistと同じ数の要素が含まれている場合myList

List<string> checklist = new List<string>() {"ABC","DEF"};
var result = myList.Where((s,i)=>s[0].Equals(checklist[i])).ToList();

3)チェックリストのどのキーワードにも一致する場合:

var result = myList.Where(s=>checklist.Contains(s[0])).ToList();
于 2012-09-25T15:57:10.097 に答える
3

キーワードのリストを定義します。

var keywords = List<string>() {"ABC", "DEF", ...};

次に、LINQを使用して以下をフィルタリングできます。

var newList = list.Where(ar => keywords.Contains(ar.First());

または:

var newList = list.Where(ar => keywords.Any(k => k.Equals(ar.First()));
于 2012-09-25T15:58:23.900 に答える
2
var result = myList.Where(s=> s.Length >= 1 && s[0].Equals("ABC")).ToList();
于 2012-09-25T15:58:41.313 に答える