是否有可能获得对MyList
本文关键字:quot 列表 字符串 如果 myList 有可能 MyList Object 是否 | 更新日期: 2023-09-27 18:13:23
我有一些类型为ObservableCollection<SampleObject>
的列表
它们都以字母表中的一个字母结尾:lista, listb, listc…
现在我想做一个循环,通过字母表运行,在每个字母,它应该添加一个项目到当前列表。
的例子:
for (char i = 'a'; i < 'z'; i++)
{
string name = "list" + i;
name.Add(.....);
}
本例中的"name"应该是我要添加项的列表
您想要一个Dictionary<char, ObservableCollection<SampleObject>>
,它将对每个char
有不同的集合。
如果你的列表是在类级别声明的,那么反射可以用来获得对它们的引用(我仍然认为字典是更好的选择)。
简单的例子:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private List<string> lista = new List<string>();
private void button1_Click(object sender, EventArgs e)
{
Console.WriteLine("Before:");
foreach (string value in lista)
{
Console.WriteLine(value);
}
for (char i = 'a'; i < 'z'; i++)
{
string name = "list" + i;
System.Reflection.FieldInfo fi = this.GetType().GetField(name, System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Public);
if (fi != null && fi.FieldType.Equals(typeof(List<string>)))
{
List<string> referenceToList = (List<string>)fi.GetValue(this);
referenceToList.Add("Hello!");
}
}
Console.WriteLine("After:");
foreach (string value in lista)
{
Console.WriteLine(value);
}
}
}