我有一个方法需要以逗号分隔的形式添加集合中的项目。 对于每个敷料项目,我希望它的敷料信息以逗号分隔的形式连接并将其作为字符串返回。但我这样做的方式失败了,并说参数不正确。
我正在尝试这样
private string GetAllFreeItemNames(CategoryType catType)
{
if (this.DressingItems != null)
{
//var ls = FreeDressingItems;//.FindAll(I => I. == this.TypeName);
return string.Join(",", this.DressingItems.Select(I => I.DressingInfo).ToArray());
}
}
有些人可以帮助我。
答案 0 :(得分:2)
private string GetAllFreeItemNames(CategoryType catType)
{
if (this.DressingItems != null)
{
//var ls = FreeDressingItems;//.FindAll(I => I. == this.TypeName);
return string.Join(",", this.DressingItems.Select(I => I.DressingInfo.ToString()).ToArray());
}
}
根据p.s.w.g
的建议,您可以省略自.NET 4.0以来的ToArray()
。
注意:您必须覆盖ToString()
类型的DressingInfo
方法才能获得预期结果。
答案 1 :(得分:2)
DressingInfo
必须是string
如果它是一个类,也许它有一些描述它的属性(例如,Name
)
return string.Join(",", this.DressingItems.Select(p => p.DressingInfo.Name).ToArray());
或更复杂的东西
return string.Join(",", this.DressingItems.Select(p => p.DressingInfo.Name + " " + p.DressingInfo.Colour).ToArray());
或者它可能超载ToString()
return string.Join(",", this.DressingItems.Select(p => p.DressingInfo.ToString()).ToArray());
请注意,从C#4.0开始,您不需要ToArray()
,所以
return string.Join(",", this.DressingItems.Select(p => p.DressingInfo.Name));
或
return string.Join(",", this.DressingItems.Select(p => p.DressingInfo.Name + " " + p.DressingInfo.Colour));
或
return string.Join(",", this.DressingItems.Select(p => p.DressingInfo.ToString()));