我对LINQ专家提出了一个简单的问题。 我想创建一个基于数组的单个字符串:
return String.Join(",", (from string val
in arrayValues
select new { value = "%" + val.ToString() + "%" })
.Distinct().ToArray());
此代码出错,但我找不到解决问题的方法。
实施例;我想发送{"1","2","3","4"}
,我的预期结果应该是这样的:"%1%,%2%,%3%,%4%"
欢迎任何帮助!
答案 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);