0

1 つのメイン コレクションがあり、そのメンバーはフィールド コンテンツ タイプを持つオブジェクトです。content-type の値は enumContentTypeEnumです。グループ化されたコンテンツタイプのリストがあります(TEXT_GROUPまたはpdf、テキストなど)List<ContentTypeEnum>

オブジェクトのコンテンツ タイプが TEXT_GROUP のコンテンツ タイプの場合、特定のコンテンツ グループ (TEXT_GROUP) の結果をフィルタリングしたいList<ContentTypeEnum>

私は比較的C#に慣れていませんが、「in」がそこにあるのを見たことがあります。それはSQLのものと似たようなものでしょうか?

4

2 に答える 2

1

メソッドを使用する必要がありますContains

form p in ...
where TEXT_GROUOP.Contains(p.ContType)
于 2013-03-19T12:24:16.423 に答える
0

Itemクラス:

public class Item
{
    public string Value { get; set; }
    public ContentTypeEnum Type { get; set; }
}

ContentTypeEnum列挙:

public enum ContentTypeEnum
{
    Text,
    PDF,
    XML,
    MP3
}

あなたのグループ:

var textGroup = new List<ContentTypeEnum>() {
    ContentTypeEnum.Text,
    ContentTypeEnum.PDF,
    ContentTypeEnum.XML
};

の入力リストItem:

var items = new List<Item>() {
    new Item() { Value = "custom PDF file", Type = ContentTypeEnum.PDF },
    new Item() { Value = "My fav MP3", Type = ContentTypeEnum.MP3 },
    new Item() { Value = "Paper", Type = ContentTypeEnum.Text }
};

そのクエリは、textGroupリスト内にあるタイプを持つアイテムのみを返します。

var textItems = items.Where(i => textGroup.Contains(i.Type)).ToList();

Console.WriteLine(item.Value)結果項目ごとに簡単に出力されます。

custom PDF file
Paper
于 2013-03-19T12:26:51.460 に答える