C# 将字符串转换为ListViewItem对象名称
我正在尝试将字符串转换为ListViewItem变量。例如:C# 将字符串转换为ListViewItem对象名称,c#,uwp,uwp-xaml,C#,Uwp,Uwp Xaml,我正在尝试将字符串转换为ListViewItem变量。例如: string string1 = "myItem"; 但我无法将其转换为ListViewItem,例如ListViewItem“myItem”=new ListViewItem()对象和变量之间存在差异。对象本身没有名称。变量名在编译时决定。除非通过反射,否则不能通过执行时间确定的名称访问变量 但您可以将其包装在包含名称的对象中 public class ListViewItemName:ListViewItem
string string1 = "myItem";
但我无法将其转换为ListViewItem,例如
ListViewItem“myItem”=new ListViewItem()代码>对象和变量之间存在差异。对象本身没有名称。变量名在编译时决定。除非通过反射,否则不能通过执行时间确定的名称访问变量
但您可以将其包装在包含名称的对象中
public class ListViewItemName:ListViewItem
{
public string ItemName { get; set; }
public ListViewItemName(string itemName, string name)
{
ItemName=itemName;
base.Name= name;
}
}
您可以这样使用它:
var string1 = "myItem";
var listViewItemName = new ListViewItemName (string1,"item1");
但对于实际使用,阵列可能更好:
var items = new ListViewItemName[] { listViewItemName1,listViewItemName2 ... };
C#不支持动态变量名
根据您的要求,您可能需要使用词典
:
字典列表视图=新建字典();
//加:
listViews[string1]=新ListViewItem();
//获取:
ListViewItem lvi=listViews[string1];
或者像往常一样使用编译时变量。如果答案解决了您的问题,请将其视为已接受
Dictionary<string, ListViewItem> listViews = new Dictionary<string, ListViewItem>();
//add:
listViews[string1] = new ListViewItem();
//get:
ListViewItem lvi = listViews[string1];