首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C#_Regex_.Oftype<match>()

C#_Regex_.Oftype<match>()
EN

Stack Overflow用户
提问于 2017-04-12 02:41:42
回答 1查看 271关注 0票数 1

请解释一下这个代码.Oftype()。我搜索GG已经有两个星期了,但是有一点结果。所以我不能完全理解。我的代码:

代码语言:javascript
运行
复制
String source = "Car2Bike6Ship6Bike3Car64Ship56"
var result = Regex
.Matches(source, "(?<name>[A-Z_[ạảàáãăắẳằặẵâấẩầậẫóỏòọõôốổồộỗơớởờợỡéèẻẹẽêếềểệễúùủụũưứừửựữíìỉịĩýỳỷỵỹđ_ẠẢÀÁÃĂẮẲẰẶẴÂẤẨẦẬẪÓỎÒỌÕÔỐỔỒỘỖƠỚỞỜỢỠÉÈẺẸẼÊẾỀỂỆỄÚÙỦỤŨƯỨỪỬỰỮÍÌỈỊĨÝỲỶỴỸĐ_a-z]+)(?<size>[0-9]+)")
.OfType<Match>()
.Select(match => new
{
    name = match.Groups["name"].Value,
    size = int.Parse(match.Groups["size"].Value),
})

.GroupBy(value => value.name)
.Select(chunk => String.Format("{0}: {1}",
   chunk.Key, String.Join(" + ", chunk.Select(item => item.size))));
        String report = String.Join(Environment.NewLine, result);

        report = report.Replace(": 0", ":");
        report = report.Replace(": +", ":");
        Console.Write(report);
        Console.ReadLine();
EN

Stack Overflow用户

回答已采纳

发布于 2017-04-12 02:48:03

OfType是非泛型IEnumerable的一种扩展方法,使其成为IEnumerable<T>.在代码示例中使用它的原因是让您在match.Groups中调用Select

因为Matches方法返回实现IEnumerableMatchCollection,所以IEnumerable<Match> LINQ表达式不需要使用Cast<T>OfType<T>来让跟随的LINQ语句使用来自正在枚举的集合的实际类型的类型信息。

票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43359326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档