如何使用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());
    }
}

有人能帮我做这个吗。

如何使用lambda表达式连接字符串

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()

注意:必须重写类型为DressingInfoToString()方法才能获得预期结果。