转换一个字符串列表
s
字符
string input = "1,2,3,4,s,6";
留意。
我只是想使用LINQ将这个字符串转换为List<int>
。我最初尝试了这种方式:
var myList = new List<int>();
input.Split(',').ToList().ForEach(n =>
myList.Add(int.TryParse(n, out int num) ? num : -1)
);
lista.RemoveAll(e => e == -1);
但我更喜欢没有任何-1
,而不是一个没有数字字符。
所以现在我尝试用这样的:
var myList = new List<int>();
input.Split(',').ToList()
.FindAll(n => int.TryParse(n, out int _))
.ForEach(num => myList.Add(int.Parse(num)));
我喜欢这一点,但确实是一个耻辱,解析发生两次(TryParse
先升后Parse
)。但是,据我所知,TryParse中的out变量是无用的(或不是?)。
你有其他人建议(使用LINQ)吗?
https://stackoverflow.com/questions/1297231/convert-string-to-int-in-one -line-code-using-linq/37033140#37033140 – Slai