C# 使用from where构造检查要包含在集合中的成员

C# 使用from where构造检查要包含在集合中的成员,c#,C#,我有1个主集合,其成员是具有字段内容类型的对象。其中,内容类型的值是枚举ContentTypeEnum。 有一个分组内容类型的列表(例如TEXT\u GROUP或pdf,TEXT…List 我想过滤任何给定内容组(文本组)的结果,如果对象的内容类型是文本组的列表中的内容类型 我对c#比较陌生,但我已经看到了“in”的存在,它的工作原理可能与sql中的类似?您应该使用Contains方法: form p in ... where TEXT_GROUOP.Contains(p.ContType)

我有1个主集合,其成员是具有字段内容类型的对象。其中,内容类型的值是枚举
ContentTypeEnum
。 有一个分组内容类型的列表(例如TEXT\u GROUP或pdf,TEXT…
List

我想过滤任何给定内容组(文本组)的结果,如果对象的内容类型是文本组的
列表中的内容类型


我对c#比较陌生,但我已经看到了“in”的存在,它的工作原理可能与sql中的类似?

您应该使用
Contains
方法:

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

项目
类别:

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

public enum ContentTypeEnum
{
    Text,
    PDF,
    XML,
    MP3
}
您的小组:

var textGroup = new List<ContentTypeEnum>() {
    ContentTypeEnum.Text,
    ContentTypeEnum.PDF,
    ContentTypeEnum.XML
};
该查询将只返回类型在
textGroup
列表中的项目:

var textItems = items.Where(i => textGroup.Contains(i.Type)).ToList();
因此,每个结果项的简单
Console.WriteLine(item.Value)
将打印:

custom PDF file
Paper
custom PDF file
Paper