我有一个要从应用程序中过滤的 TransportType 列表应该将用户选择与此列表进行比较,然后只返回他选择的应该在定义列表中的内容
private static readonly string[] ValidTransportType = new string[]
{
"Cars",
"Airplans",
"Audi",
"BMW",
"Airbus A333",
"Boing 747",
};
public static IEnumerable<string> GetSelectedTypes(IEnumerable<string> userSelection )
{
var list = (from transport in ValidTransportType
where userSelection.Contains(transport)
select transport).ToList();
return list;
}
例如:如果用户选择“汽车”、“保时捷”,那么结果将只有“汽车”,因为没有定义保时捷。
我的问题是,我如何修改 Linq 查询以执行以下操作:如果用户选择“汽车”、“奥迪”、“宝马”,则查询返回汽车,因为汽车包括宝马和奥迪,如果用户选择“奥迪”和“ BMW”然后应用程序将返回“Audi”和“BMW”但不返回“cars”,因为它没有被选中,如果用户选择了“BMW”、“AUDI”、“Airplanes”、“Boing 747”那么应用程序应该返回列表“BMW”、“Audi”、“Airplanes” 但不是“Boing 747”,因为飞机包括“Boing 747”
任何想法?
编辑:
请注意,要比较的类型和类型在运行前是未知的,两者都来自外部文件,例如:在我的示例中,我放置了汽车,但它可以是动物、技术、人……等等,这就是为什么我无法预测预先输入和创建类。