2013-03-19 36 views
0

我有1个主集合,其成员是具有字段内容类型的对象。 content-type的值是enum ContentTypeEnum。 有分组内容类型的列表(说TEXT_GROUP或pdf,文字...)List<ContentTypeEnum>使用from-where构造函数检查要包含在集合中的成员

我想对于任何给定的内容群(TEXT_GROUP),筛选的结果,如果对象的内容类型是一在TEXT_GROUP的List<ContentTypeEnum>

那么我相对比较新的C#,但我已经看到'在'是否存在,可能是工作原理类似于一个在SQL?

回答

1

您应该使用Contains方法:

form p in ... 
where TEXT_GROUOP.Contains(p.ContType) 
0

Item类:

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

ContentTypeEnum枚举:

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

你组:

0的

输入列表:

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 
相关问题