C# 带TryParse的整数列表的整数字符串
我有一段代码:C# 带TryParse的整数列表的整数字符串,c#,C#,我有一段代码: 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)).ToLi
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>();
TheString=“44343254645474445,2132”//实际上,大约有1000个条目
List TheListOfIDs=新列表();
TheListofliesDids=来自string.Split(',')中的字符串s
选择Convert.ToInt32(s)).ToList();
我知道我可以使用try-catch来确保转换不会抛出错误,但我想知道如何在linq语句中使用TryParse来实现这一点
谢谢。thelistoflipedids=(来自string.Split(',')中的字符串s)
TheListOfLeadIDs = (from string s in TheString.Split(',')
let value = 0
where int.TryParse(s, out value)
select value).ToList<int>();
设值=0
其中int.TryParse(s,out值)
选择值);
对于任何失败的转换,这将返回-1
。警告:未尝试
string[] myString = TheString.Split(',');
int leadId;
var theListOfLeadIds = (from myString in myString where int.TryParse(myString, out leadId) select int.Parse(myString)).ToList<int>();
string[]myString=TheString.Split(',');
int-leadId;
var thelistofliesdidis=(从myString中的myString,其中int.TryParse(myString,out leaddid)选择int.Parse(myString)).ToList();
这意味着您只能成功解析值…您可以这样做:
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();
如果找到非int值,将其替换为0,忽略它,并抛出错误,您希望发生什么?我得到错误:
只读范围变量不能用作赋值目标
这不起作用无法将范围变量作为out或ref参数传递'I'm not downvote,因为我可能遗漏了一些内容。但是:这不起作用。嗯,可能是Roslyn(最新的C#编译器)改变了什么?让我试试。
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();