【发布时间】:2011-05-26 15:55:05
【问题描述】:
private List<T> newList;
public List<T> NewList
{
get{return newList;}
set{newList = value;}
}
我想创建这样的东西,但这行不通。这只是一个演示我的目标的示例,因为为 string 和 int 甚至 T 创建属性很常见,但我从未见过 List 属性 是否有可能做这样的事情,为 List 类型创建一个属性?
编辑
我有一个具有普通属性(字符串属性、int 属性等)的普通类,但我有这个存储用户选项的属性,所以在表示层上,我必须将它们转换为字符串,以便能够将它们存储在对象中。现在有可能拥有一个 List 类型的属性来以一种更好、更干净的方式存储多值,而不是将信息转换为一个字符串,然后将其拆分并再次加入它!再次感谢=D
EDIT2
private List<KeyValuePair<string, string>> _settings;
public List<KeyValuePair<string, string>> MySettings
{
get { return _settings; }
set { _settings = value; }
}
我使用了您发布的确切代码,但该属性仍然不会出现在对象的实例中,因此我尝试在 get 和 set 中添加代码(我想知道您为什么将它们留空或者这是否意味着什么?)而且在类中添加了一个私有变量,但它仍然没有出现在对象实例的属性中!
我希望您可以提供实现此属性的确切代码以及从/向此类对象的实例分配或检索的简单代码 这是第一次听说这个 KeyValuePair,所有的教程都很简单,不适合我,对不起!
最后的编辑:经过大量研究和 Mark Avenius 的帮助,我找到了完美的答案。希望大家都能从中受益。
现在!如何为列表创建属性:
选项类
Public Class Options
{
private string id;
private int option;
public int ID
{
get { return id; }
set { id= value; }
}
public string Option
{
get { return option; }
set { option = value; }
}
}
用户类
public class Users
{
private int userId;
private string pass;
private List<Options> userOptions = new List<Options>();
public int ID
{
get { return userId; }
set { user = userId; }
}
public string Pass
{
get { return pass; }
set { pass = value; }
}
public List<Options> OptionsList
{
get { return userOptions; }
set { userOptions = value; }
}
}
表示层
Users newUser = new Users ();
Options userOption = new Options ();
userOption.ID = int.Parse(txtBxID.Text);
userOption.Option = txtBxOption.Text;
Item.Options.Add(userOption);
【问题讨论】:
标签: c#