2

従業員を選択しようとしているList<Employees>コレクションがありますActive

私はこれを行うことができることを示す多くの例をここで見ているので、何か間違ったことをしているに違いありませんが、Visual Studio は私ができないと言っています:

タイプ 'System.Linq.IOrderedEnumerable' を 'System.Collections.Generic.List' に暗黙的に変換することはできません。明示的な変換が存在します (キャストがありませんか?)

この写真の何が問題になっていますか? LastNameFirstName(ご想像のとおり) はどちらも文字列値でありActive、ブール値です。

範囲変数

DataGridView1.DataSource = null;
List<AcpEmployee> emps = from e in employeeInfo.Employees
                         where e.Active 
                         orderby e.LastName, e.FirstName descending
                         select e;
4

3 に答える 3

9

ToListクエリの最後に使用する必要があります。

List<AcpEmployee> emps = (  from e in employeeInfo.Employees
                            where e.Active
                            orderby e.Active orderby e.LastName, e.FirstName descending
                            select e).ToList();

またはメソッドを直接使用する:

List<AcpEmployee> emps = employeeInfo.Employees
    .Where(e => e.Active)
    .OrderBy(e => e.LastName)
    .ThenByDescending(e => e.FirstName)
    .ToList();
于 2012-08-29T18:46:54.960 に答える
4

結果をリストとして取得する場合は、クエリに ToList() を追加するだけです。var empsまたは単にタイプを持つemps を宣言しますIOrderedEnumerable

于 2012-08-29T18:45:29.020 に答える
1

これは以前にここで回答されています。linq で orderby キーワードを使用するだけです。

var emps = from e in employeeInfo.Employees 
            where e.Active orderby e.LastName thenby e.FirstName select e;
于 2012-08-29T18:52:17.393 に答える