0

我有 1 个主集合,其成员是具有字段内容类型的对象。其中 content-type 的值是 enum ContentTypeEnum。有一个分组内容类型的列表(比如 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 回答