1

メンバーを検索する関数を作成しており、searchResults 変数に Where を追加したいと考えています。ただし、そうする前に IQueryable にする必要があるかもしれません。

これは私が達成したいことです:

var searchResults = listMembers.DataSource = members.getAllMembers().OrderByDescending(x => x.createdDate).Select(x => new
    {
        x.ID,
        x.memberNumber,
        x.name,
        x.email,
        x.birthDate,
        hasPayed = Helper.renderBoolImage(x.hasPayed, true),
        isConfirmed = Helper.renderBoolImage(x.isConfirmed, true),
        isExportedToExcel = Helper.renderBoolImage(x.isExportedToExcel, true)
    });

    if (!String.IsNullOrEmpty(search.name))
    {
        searchResults = searchResults.Where(x => x.name.ToLower().Equals(enc(search.name.ToLower())));
    }

ただし、この行は Where を解決できないため、コンパイルされません。

searchResults = searchResults.Where(x => x.name.ToLower().Equals(enc(search.name.ToLower())));
4

2 に答える 2

6

これが問題です:

var searchResults = listMembers.DataSource = members.getAllMembers()...

以下を使用する必要があります。

var searchResults = members.getAllMembers()...;

if (!String.IsNullOrEmpty(search.name))
{
    searchResults = searchResults.Where(...);
}

listMembers.DataSource = searchResults;

現在、 のタイプは のタイプではなくsearchResultsのタイプと同じです。listMembers.DataSourcemembers.getAllMembers...

一般に、元のコード ( ) のように複数の割り当てを行うことはx = y = zお勧めしません。

于 2012-07-30T14:19:39.327 に答える
-1

using System.Linq;ファイルの先頭にありますか?少なくとも .NET 3.5 を使用していますか?

于 2012-07-30T14:15:02.183 に答える