私は現在、以下を使用してリストを返しています
Test.GetPrevList(Current.Id, UserId);
このリストには5つの列があります
User ID
First Name
Last Name
Department
Week
私が気付いたのは、従業員が部門を切り替えると、リストに2回表示されるということです。
私がやりたいのは、ストアドプロシージャが複数回使用されるため、Linqを使用して、最新の週の列に基づいて最新のレコードを選択することです。
ユーザーを週ごとに並べ替えてから、IDでグループ化し、各グループの最初のユーザーを選択できます。
var userList = Test.GetPrevList(Current.Id, UserId);
var users = userList.OrderByDescending(x => x.Week)
.GroupBy(x => x.UserId)
.Select(x => x.First());
単純なLINQ呼び出しも使用しますDistinct()
DistinctはIEqualityComparer、のように使用することもできます
IEnumerable<User> users = users.Distinct(new UserComparer());
ここでUserComparer、カスタム比較ロジックを実装するクラス。