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

で示唆されているように、.NET 4.0 以降p.s.w.gでは省略できます。ToArray()

注:期待される結果を得るにはToString()、タイプのメソッドをオーバーライドする必要があります。DressingInfo

于 2013-08-05T08:13:32.137 に答える