这个的正确语法是什么:
IListnames = "Tom,Scott,Bob".Split(',').ToList ().Reverse();
我搞砸了什么?TSource是什么意思?
问题是你正在调用List
哪个返回void
.
你可以这样做:
Listnames = "Tom,Scott,Bob".Split(',').ToList (); names.Reverse();
要么:
IListnames = "Tom,Scott,Bob".Split(',').Reverse().ToList ();
后者更昂贵,因为任意转换IEnumerable
涉及缓冲所有数据然后全部产生 - 而List
可以"就地"完成所有逆转.(这里的区别在于它调用了Enumerable.Reverse
扩展方法,而不是List
实例方法.)
更高效,您可以使用:
string[] namesArray = "Tom,Scott,Bob".Split(','); ListnamesList = new List (namesArray.Length); namesList.AddRange(namesArray); namesList.Reverse();
这样可以避免创建任何大小不合适的缓冲区 - 代价是将四个语句放在一个人的位置......以往,在实际用例中权衡可读性和性能.
我意识到这个问题已经很老了,但我遇到了类似的问题,除了我的字符串中包含空格.对于那些需要知道如何用不仅仅是逗号分隔字符串的人:
string str = "Tom, Scott, Bob"; IListnames = str.Split(new string[] {","," "}, StringSplitOptions.RemoveEmptyEntries);
StringSplitOptions删除只是空格char的记录...