我正在尝试在Linq表达式中使用子字符串,但无法使其工作。这是我的代码:
CategoriesById =
new Dictionary<string, string>
{
{"eventType_1", "Super Classes"},
{"eventType_2", "Master Classes"},
{"eventType_3", "Talks"},
{"eventType_4", "Forums"}
};
IEnumerable<CustomerDto> result =
_jsonSerialiser.Deserialise<ImportDto>(xml).Imports;
var filteredResult = result
.Where(s => s.CategoryIds
.Any(i => CategoriesById.Keys
.Contains(i)));
以上工作,但我想匹配s.CategoryIds的子字符串。 s.CategoryIds的类型为IEnumerable。因此,我不能使用.Substring或Split。如何在同一个Linq中为每个s.CategoryIds使用.Substring或Split?
谢谢
答案 0 :(得分:0)
您可以在Any:
中调用CategoriesById的位置var filteredResult = result
.Where(s => s.CategoryIds
.Any(i => CategoriesById.Keys.Where(c => c.Substring(3).Contains(i)));