Linq Query将日期的Concat返回给String?

时间:2016-06-21 18:15:22

标签: c# linq

我有一个返回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") + " ";});

2 个答案:

答案 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")));
  1. Concat() - 用于连接两个seuences。所以,这里有两个清单。
  2. ForEach() - 用于迭代序列,通常用于设置值。

答案 1 :(得分:1)

var result=  string.Join(" ", bill.GetNotices().Select(date => date.ToString("MM/dd/yyyy")).ToArray());
  • string.Join - 使用分隔符和字符串数组(string[]),因此稍后调用ToArray
  • 您提到GetNotices()已经返回IEnumerable<DateTime>实例,因此您可以直接在其上执行select,将DateTime转换为您指定格式的字符串,然后将该结果转换为一个字符串数组。