我有一个返回GetNotices()
的方法IEnumerable<DateTime>
。
集合中的Foreach日期我想转换为字符串并连接字符串。我肯定可以做一个Foreach循环。但是当我拥有LINQ的力量时,为什么我会这样做呢!这就是我现在所尝试的。
bill.GetNotices().ToList().Concat(x => {return x.Date.ToString("MM/dd/yyyy") + " ";});
我也试过......
bill.GetNotices().ToList().ForEach(x => {return x.Date.ToString("MM/dd/yyyy") + " ";});
答案 0 :(得分:3)
使用 String.Join<T>()
- 它接受分隔符字符串和IEnumerable<T>()
var billList = bill.GetNotices().ToList();
var resultString = String.Join(",", billList.Select(d => d.ToString()));
编辑*(针对您的解决方案):
var resultString = String.Join(" ", billList.Select(d => d.Date.ToString("MM/dd/yyyy")));
Concat()
- 用于连接两个seuences。所以,这里有两个清单。ForEach()
- 用于迭代序列,通常用于设置值。答案 1 :(得分:1)
var result= string.Join(" ", bill.GetNotices().Select(date => date.ToString("MM/dd/yyyy")).ToArray());
string[]
),因此稍后调用ToArray
。GetNotices()
已经返回IEnumerable<DateTime>
实例,因此您可以直接在其上执行select,将DateTime
转换为您指定格式的字符串,然后将该结果转换为一个字符串数组。