[英]Aggregating or concatenating a list of ints into a string in a functional way
[英]string of ints to list of ints with a TryParse
我有这段代码:
TheString = "443,432,546,4547,4445,2,132"; //actually, about 1000 entries
List<int> TheListOfIDs = new List<int>();
TheListOfLeadIDs = from string s in TheString.Split(',')
select Convert.ToInt32(s)).ToList<int>();
我知道我可以使用try catch来确保转换不会引发错误,但是我想知道如何在linq语句中使用TryParse使其工作。
谢谢。
TheListOfIDs = TheString.Split(',')
.Select(s =>
{
int i;
return Int32.TryParse(s, out i) ? i : -1;
}).ToList();
对于任何失败的转换,这将返回-1
。
TheListOfLeadIDs = (from string s in TheString.Split(',')
let value = 0
where int.TryParse(s, out value)
select value).ToList<int>();
您可以这样做:
string TheString = "443,432,546,4547,4445,2,132"; //actually, about 1000 entries
int temp=0;
var TheListOfIDs= TheString
.Split(',')
.Where (ts =>int.TryParse(ts,out temp))
.Select (ts =>temp )
.ToList();
警告:未尝试。
string[] myString = TheString.Split(',');
int leadId;
var theListOfLeadIds = (from myString in myString where int.TryParse(myString, out leadId) select int.Parse(myString)).ToList<int>();
这意味着您将仅成功解析获得的价值...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.