Linqでリストを照会したいが、私の例では2つの要素(Name、Status)を含む他のリストでフィルタしたい。 これは私の問題に適応した古い質問に触発されています。 LINQ: "contains" and a Lambda query リストを含むcontainsを含むLinqクエリフィルタ<T>複数の要素
"contains"メソッドを使用しようとしましたが、私のリストをフィルタリングできませんでした。
私は2つの建物(2つ、5つ)で結果を得る必要があります 誰かが私が停止しているアイデアはありますか?
おかげ
BLOCKQUOTE
public class Building
{
public enum StatusType
{
open,
closed,
weird,
};
public string Name { get; set; }
public StatusType Status { get; set; }
}
private static readonly List<Building> BuildingList = new List<Building>()
{
new Building() {Name = "one", Status = Building.StatusType.open},
new Building() {Name = "two", Status = Building.StatusType.closed},
new Building() {Name = "three", Status = Building.StatusType.weird},
new Building() {Name = "four", Status = Building.StatusType.open},
new Building() {Name = "five", Status = Building.StatusType.closed},
new Building() {Name = "six", Status = Building.StatusType.weird},
};
private void GetResult()
{
var buildingSelect = new List<Building>
{
new Building() {Name = "two", Status = Building.StatusType.closed},
new Building() {Name = "five", Status = Building.StatusType.closed}
};
var q = (from building in BuildingList
where buildingSelect.Contains(building.Name, building.Status)
select building).ToList();
dataGridView1.DataSource = q;
}
ありがとうrexcfnghk、これを私は学び、IEquatableの実装を実験しました。 Containsは現在、元のコードで若干の更新を行っています。> 'buildingSelect.Contains(new Building(building.Name、building.Status))'のどこにありますか?リストの削除も機能しています。すばらしいです。どうもありがとう。 – GYCO50
私の答えがあなたを助けたら、それを答えとして受け入れることを検討してください – rexcfnghk