LINQ to List<> to String - 最佳优化方法

时间:2011-12-09 13:33:18

标签: c# linq c#-3.0

我有一个字符串List<string>这适用于所有列表。我需要获取字符串列表中的第一项,然后将我返回的字符串转换为字符串。

以下是使用linq的工作代码:

public List<string> AppGroup = new List<string>();
var group = SearchParameters.AppGroup.Take(1);
string firstAppGroup = String.Join(",", group.ToArray());

我的问题是;这是做我想做的最好的方法吗?有没有更好或更短的方式来写出来?可以理解考虑性能的一个很好的例子。如果我的确很好并且不需要更改,请告诉我。

我正在使用框架3.5及更高版本。

2 个答案:

答案 0 :(得分:4)

您目前抓住列表中第一项的方法有点啰嗦,而且源于使用Take(1)返回IEnumerable而不是相关项目的事实。

假设SearchParameters.AppGroupList<string>

string firstAppGroup = 
  SearchParameters.AppGroup.FirstOrDefault(); //returns null on empty set

是一种更简洁的说明相同意图的方式。

编辑:

如@CodeInChaos所述,如果您不想处理空值,请在返回null的情况下使用null-coalescing运算符替换空字符串:

string firstAppGroup = 
  SearchParameters.AppGroup.FirstOrDefault() ?? string.Empty;

答案 1 :(得分:0)

可能是一个班轮:

string firstAppGroup = String.Join(",", SearchParameters.AppGroup.First());