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();