如何在C#中使用linq将匹配集合值转换为列表 [英] How to convert the match collection values to list using linq in C#

查看:238
本文介绍了如何在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆