0

我有一个第 3 方 Web API,它使用一个名为 ArrayOfString 的自定义类型,它继承自 System.Collections.Generic.List。我正在尝试编写将动态生成列表并返回 ArrayOfString 的方法,但是,我无法弄清楚如何正确执行此操作。

// Definition of ArrayOfString in API
public class ArrayOfString : System.Collections.Generic.List<string> {}


// Working Example with Static elements
public ArrayOfString GetPropertiesAsArrayOfString()
{
  ArrayOfString properties = new ArrayOfString()
  {
    "Name|String",
    "Description|String",  
    "InventoryLevel|Int32", 
    "Sku|String", 
    "UpdatedAt|DateTime" 
  };

  return properties;
}


// Trying to initialize the ArrayofString from a collection instead of from static strings. 

// Dynamically generated List<string>
List<string> items = new List<string>() { "Name|String", "Description|String", ect... };

ArrayOfString properties = new ArrayOfString(items)

上面的代码给出了一个错误,指出 ArrayOfString 不包含带有 1 个参数的构造函数,这是有道理的,但是我不确定如何初始化自定义类型。任何帮助或建议将不胜感激。

4

1 回答 1

0

我不想让这个问题悬而未决。我开发的最终基类看起来像这样。

再次感谢你的帮助。

public class BaseType
{
  public ArrayOfString GetPropertiesAsArrayOfString(Type type)
  {
    PropertyInfo[] propertyInfos = type.GetProperties();
    List<string> items = new List<string>();
    string propertyType = string.empty;

    for (int x = 0; x < propertyInfos.count(); x++)
    {

      switch propertyInfos[x].PropertyType.ToString())
      {
        case "System.String":
             propertyType = "String";
             break;
        case "System.DataTime":
             propertyType = "DateTime";
             break;
        case "System.Int32":
             propertyType = "Int32";
             break;
      }

      items.Add(propertyInfos[x].Name + "|" + propertyType);
    }

    ArrayOfString properties = new ArrayOfString();
    properties.AddRange(items);
    return properties
  }
}  
于 2013-03-05T09:26:15.683 回答