如何从数组创建一串不同的值(包括其他字符)

时间:2014-06-17 22:04:08

标签: c# arrays linq

我对LINQ专家提出了一个简单的问题。 我想创建一个基于数组的单个字符串:

return String.Join(",", (from string val 
     in arrayValues
     select new { value = "%" + val.ToString() + "%" })
     .Distinct().ToArray());

此代码出错,但我找不到解决问题的方法。

实施例;我想发送{"1","2","3","4"},我的预期结果应该是这样的:"%1%,%2%,%3%,%4%"

欢迎任何帮助!

2 个答案:

答案 0 :(得分:2)

你可以使用:

return String.Join(",", arrayValues.Distinct().Select(v => "%" + v + "%"));

如果您总是至少有一个元素,您也可以使用:

return "%" + string.Join("%,%", arrayValues.Distinct()) + "%";

答案 1 :(得分:2)

从您的示例中不清楚为什么您需要Distinct,但您可以这样做:

return string.Join(",", arrayValues.Distinct().Select(s => "%" + s + "%"));

var values = from val in arrayValues.Distinct() select "%" + val + "%";
return string.Join(",", values);