-1

Guid 値が構造体の LIST 内にあるかどうかを確認するにはどうすればよいですか?

public struct Info
{
   public Guid EntityTypeID;
   public String Name;
}


List<Info> InfoList = <function which populates the list of Struct>
...

var values = ctx.EntityValues.Where(v => v.EntityID == e.ID
                               && InfoList.Contains(v.EntityTypeItemID)).ToList(); <=== problem here!
                //or something like: InfoList[i].EntityTypeID.Contains(v.EntityTypeItemID)).ToList();

ありがとうございました

4

1 に答える 1

0

私はあなたが探していると思いますAny

... InfoList.Any(x => x.EntityTypeID == v.EntityTypeItemID)

アイテムの一部Containsに一致するものを探しているため、は使用できません。

(また、パブリック フィールドを使用したり、実際に変更可能な構造を使用したりすることも強くお勧めしませんが、それは別の問題です。)

別のオプションは、関心のある GUID のリストを作成することです。

var guids = InfoList.Select(x => x.EntityTypeID).ToList();

次に、次を使用できます。

... guids.Contains(v.EntityTypeItemID)

これは、タイプ ID の抽出をメイン クエリから移動するため、前のコードが機能しなかった場所で機能する可能性があります。

于 2013-11-10T17:47:48.523 に答える