我试图在单个Linq表达式中构建我的函数。
var values = "AA1234,AA2345,BB2345"
然后我创建了这个简单的函数:
var finalList = new List<string>();
var splitedList = previousString.Split(',').ToList();
foreach (var s in splitedList )
{
finalList .Add(s.Substring(0,2));
}
然后我得到了结果,我也尝试转换为linq,我可以,这就是结果:
var splitedList = previousString.Split(',').ToList();
var finalList = splitedList.Select(s=> s.Substring(0, 2)).ToList();
结果也很好。
但是在一次通话中有什么方法可以简化这一点吗?
我尝试了一些命令,但他们没有工作:
var finallist = previousString.Split(',').ToString().Substring(0,2).ToList();
var finallist = previousString.Split(',').ToString().Take(2);
var finallist = previousString.Split(',').ToString().Take(2).ToList();
也许是不可能的,
谢谢大家。
答案 0 :(得分:3)
如果没有特殊原因,您无需致电ToList()
。
var values = "AA1234,AA2345,BB2345";
var splitedList = values
.Split(',')
.Select(s => s.Substring(0, 2))
.ToList();
ToList()
将创建List<string>
,而Split(',')
将生成string[]
。两者都实现IEnumerable
,这使得ToList()
不必要,因为Select()只需要IEnumerable
。
答案 1 :(得分:0)
这应该有效:
var finalList = previousString.Split(',').Select(s => s.Substring(0, 2)).ToList();