72

あるリストから別のリストから会社 ID のリストを削除しようとしています。私はlinqをよく理解していませんが、それを使用する必要があると確信しています。

List<Firm> firms = GetBusinessDevelopmentFirms(database);
List<Firm> trackedFirms = GetAllCLIFirmsBeingTrackedByUser();

var result = firms.Contains(i => trackedFirms.Contains(i.FirmID));

最後の行が機能せず、「using System.Linq;」を入力したにもかかわらず、システムは「unknown method Contains(?)」と表示します。クラスのトップ。

私のアイデアは、すべての企業のリストから追跡された企業のリストを削除して、追跡されていない企業を見つけることでした。

これが理にかなっていることを願っています。

4

6 に答える 6

12

上記のコードから、TrackedFirms に対応する項目を持つ会社からエントリを取得しようとしていると推測されます。

List<Firm> results = Firms.Where(f => TrackedFirms.Any(t => t.FirmId == f.FirmId)).ToList();

一方、追跡されていない企業が必要な場合は、次のとおりです。

List<Firm> results = Firms.Where(f => !TrackedFirms.Any(t => t.FirmId == f.FirmId)).ToList();
于 2013-09-19T13:28:33.987 に答える
8

これはうまくいくはずだと思います

var result = firms.Where(x => !trackedFirms.Any(y => x.FirmID == y.FirmID));

のすべての会社から、含まれていない会社を選択firmsます(少なくともこれはあなたの質問から私が理解していることです)。trackedFirms

于 2013-09-19T13:27:17.913 に答える