如何使用lambda表达式连接字符串
本文关键字:连接 字符串 表达式 lambda 何使用 | 更新日期: 2023-09-27 18:26:30
我有一个方法,需要以逗号分隔的形式添加集合中的项。对于我想要的每个着装项目,它的着装信息以逗号分隔的形式连接起来,并以字符串的形式返回。但我做这件事的方式失败了,并说参数不正确。
我正在像这个一样尝试
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());
}
}
有人能帮我做这个吗。
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()));
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()
。
注意:必须重写类型为DressingInfo
的ToString()
方法才能获得预期结果。