Linq Foreach将字符串拆分为数组并填充到列表中的实现
我有一系列电子邮件地址,如: 字符串str=abc@gmail.com;温室气体ghf@gmail.com >;xyzLinq Foreach将字符串拆分为数组并填充到列表中的实现,linq,Linq,我有一系列电子邮件地址,如: 字符串str=abc@gmail.com;温室气体ghf@gmail.com >;xyz 现在我想做点像这样的事 List<string> test = new List<string>(); Regex.Split(to, ";").ToList().ForEach(x => x.Split(new char[] { '<', '>' }).Select(y => y != "<" || y !
List<string> test = new List<string>();
Regex.Split(to, ";").ToList().ForEach(x => x.Split(new char[] { '<', '>' }).Select(y => y != "<" || y != ">"));
List test=newlist();
Regex.Split(to,“;”).ToList().ForEach(x=>x.Split(newchar[]{“”)。选择(y=>y!=”);
现在,我如何只填写电子邮件地址,如abc@gmail.com , ghf@gmail.com及xyz@gmail.com进入单linq查询中的列表测试?您是否尝试了以下操作:
var test = Regex.Split(to, ";").ToList().ForEach(x => x.Split(new char[] { '<', '>' }).Select(y => y != "<" || y != ">"));
var test=Regex.Split(to,“;”).ToList().ForEach(x=>x.Split(new char[]{'')。选择(y=>y!=”);
var result=str.Split(“;”)
.Select(m=>Regex.Replace(m),([^,“$2”)
.Trim()).ToList();
您的代码示例实际上不会做任何有用的事情-它会创建一个列表并调用Select
,但这不会影响test
…尝试摆脱使用ToList()的习惯。ForEach(…)
,这是一个被严重滥用的构造,没有任何真正的好处。只需使用一个foreach
循环。@Jonsket是的,我知道你的两个部分。实际上我试图摆脱foreach,但不知道怎么做。Jon我怎么知道那代码真的没有任何作用。我实际上不知道怎么做,所以我尽了最大的努力到目前为止:)@Raphal你能告诉我这个正则表达式是如何工作的吗?我对正则表达式不太熟悉一点解释wd b就足够了:)我得到的结果怎么都还没有达到标准,但是如果我能理解你的正则表达式的功能,我可以根据我的需要修改你的代码:)。但是它非常接近我实际想要的结果:)@Joy 1。(char
之前的所有内容。用第二个表达式的内容(char
之前的所有内容)替换所有内容。然后修剪以删除空格。希望它(稍微)更清晰。@Joy和我使用给定的示例进行了测试,得到了很好的结果。您可以给出一个“非工作示例”,可能吧。我给字符串str=Qa5;Qa5;abc@gmail.com这给了我结果=qa5@gmail.comqa5@gmail.com,abc@gmail.com@Joy对你的字符串进行了很好的测试,我得到了3个元素的列表qa5@gmail.com,qa5@gmail.com,abc@gmail.com…这不是你想要的吗?
var result = str.Split(';')
.Select(m => Regex.Replace(m, "([^<]+)<([^>]+)>", "$2")
.Trim()).ToList();