在Linq表达式中使用子字符串

时间:2015-06-15 09:56:40

标签: c# linq

我正在尝试在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?

谢谢

1 个答案:

答案 0 :(得分:0)

您可以在Any:

中调用CategoriesById的位置
var filteredResult = result
            .Where(s => s.CategoryIds
                .Any(i => CategoriesById.Keys.Where(c => c.Substring(3).Contains(i)));