1

linq クエリに値を渡す複数のコンボボックスがあります。以前はそれを扱っていました

    if(combobox.text == "select all")
       {combobox.text = "")

そして、StartsWith(combobox.text) メソッドを使用して比較を行うと、これが間違っていることがわかります。「ジム」は「ジミー」を返すため。「すべて選択」が選択されている場合、どうすればすべてを選択できますか?

4

1 に答える 1

2

最良の方法は、クエリ フィルターを条件付きで追加することです。

var query = dataSource.foo.AsQueryable();
//you may or may not need AsQueryable() depending on what "foo" is
//if it is not queryable, you may need AsEnumerable(), or simply nothing

if (!combobox.Text.Equals("select all"))
    query = query.Where(x => x.Equals(combobox.Text));

return query.ToList();

「より簡単な」方法は boolean を使用することorですが、結果のクエリは醜く、SQLに変換できる場合とできない場合があります(使用している場合):

var query = dataSource.foo
    .Where(x => combobox.Text.Equals("select all") || x.Equals(combobox.Text));
于 2013-08-09T18:55:43.120 に答える