-7

我有一种方法需要以逗号分隔的形式从集合中添加项目。对于每个敷料项目,我希望它的敷料信息以逗号分隔的形式连接起来,并将其作为字符串返回。但是我这样做的方式失败了,说参数不正确。

我正在尝试这样

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

有人可以帮我解决这个问题。

4

2 回答 2

3

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()));
于 2013-08-05T08:15:49.350 回答
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,您可以省略ToArray()自 .NET 4.0 以来的版本。

注意:您必须重写ToString()该类型的方法DressingInfo才能获得预期的结果。

于 2013-08-05T08:13:32.137 回答