如何在C#中使用linq将匹配集合值转换为列表 [英] How to convert the match collection values to list using linq in C#
本文介绍了如何在C#中使用linq将匹配集合值转换为列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
嗨朋友们,我有一个任务,在这个我需要生成列表。
foreach (匹配m in mc)
{
if (m.Groups [ 1 ].Value.Trim().Contains( ))
{
string [] arr = m.Groups [ 1 ]。Value.Split(' ');
foreach ( string s in arr)
if (!clsList.Contains(s))clsList.Add(s);
}
else
if (!clsList.Contains(m .Groups [ 1 ]。Value))clsList.Add(m.Groups [ 1 ]。Value) ;
}
此mc中的
是一个匹配集合,在此我需要转换为mc.groups [1] .value列表,然后如果组值包含空格意味着必须拆分并添加列表,现在只有我使用foreach循环。
我尝试过:
i尝试使用linq
解决方案
试试这个
mc.OfType< Match>()。ToList()。ForEach (m = > {clsList.AddRange(m.Groups [ 1 ]。Value.Split(< span class =code-string>' '));});
clsList = clsList.Distinct()。ToList();
类似于Karthik的解决方案:
clsList = mc.OfType<匹配>()。SelectMany(m = > m.Groups [ 1 ]。Value.Split(' '))。Distinct()。ToList( );
Hi friends, i have one task, in this i need to generate list.
foreach (Match m in mc)
{
if (m.Groups[1].Value.Trim().Contains(" "))
{
string[] arr = m.Groups[1].Value.Split(' ');
foreach (string s in arr)
if (!clsList.Contains(s)) clsList.Add(s);
}
else
if (!clsList.Contains(m.Groups[1].Value)) clsList.Add(m.Groups[1].Value);
}
in this mc is a match collection, in this i need to convert as list with mc.groups[1].value, then if group value contains space means that must be split and add with list, now only i using foreach loop.
What I have tried:
i tried to convert matchcollection group value to list using linq
解决方案
try this
mc.OfType<Match>().ToList().ForEach(m => { clsList.AddRange(m.Groups[1].Value.Split(' ')); }); clsList = clsList.Distinct().ToList();
Similar to Karthik's solution:
clsList = mc.OfType<Match>().SelectMany(m => m.Groups[1].Value.Split(' ')).Distinct().ToList();
这篇关于如何在C#中使用linq将匹配集合值转换为列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文