0

私は現在、以下を使用してリストを返しています

Test.GetPrevList(Current.Id, UserId);

このリストには5つの列があります User ID First Name Last Name Department Week

私が気付いたのは、従業員が部門を切り替えると、リストに2回表示されるということです。

私がやりたいのは、ストアドプロシージャが複数回使用されるため、Linqを使用して、最新の週の列に基づいて最新のレコードを選択することです。

4

2 に答える 2

3

ユーザーを週ごとに並べ替えてから、IDでグループ化し、各グループの最初のユーザーを選択できます。

var userList = Test.GetPrevList(Current.Id, UserId);
var users = userList.OrderByDescending(x => x.Week)
                    .GroupBy(x => x.UserId)
                    .Select(x => x.First());
于 2012-05-10T14:24:30.300 に答える
1

単純なLINQ呼び出しも使用しますDistinct()

DistinctはIEqualityComparer、のように使用することもできます

IEnumerable<User> users =  users.Distinct(new UserComparer());

ここでUserComparer、カスタム比較ロジックを実装するクラス。

于 2012-05-10T14:12:19.360 に答える