C# 如何通过可观察集合进行迭代?
大家好,我想问一下,我有一个具有如下属性的类:C# 如何通过可观察集合进行迭代?,c#,wpf,datagrid,overriding,observablecollection,C#,Wpf,Datagrid,Overriding,Observablecollection,大家好,我想问一下,我有一个具有如下属性的类: public class VLANSPropertyClass { public string vname { get; set; } public int S_No { get; set; } public string vid { get; set; } public string ip { get; set; } public string vports { get; set; } }
public class VLANSPropertyClass
{
public string vname { get; set; }
public int S_No { get; set; }
public string vid { get; set; }
public string ip { get; set; }
public string vports { get; set; }
}
我创建了一个ObservableCollection,如下所示:
public ObservableCollection<VLANSPropertyClass> vlan { get; set; }
vlan = new ObservableCollection<VLANSPropertyClass>();
显示如下图所示:
现在我想遍历每一行并读取它的值。我尝试了以下操作,但没有成功
foreach(VLANSPropertyClass v in vlan)
{
Console.WriteLine(v);
Console.WriteLine();
}
请告诉我从ObservaleCollection/Datagrid读取值的可能方法。任何帮助都将非常有用。您可以将您的类更改为此
public class VLANSPropertyClass
{
public string vname { get; set; }
public int S_No { get; set; }
public string vid { get; set; }
public string ip { get; set; }
public string vports { get; set; }
public override string ToString()
{
return String.Format("Name: {0}, Serial {1}", vname, S_No);
}
}
此更改包括对ToString方法的重写。只要框架需要类的字符串表示,就会调用它
ToString是.NET Framework中的主要格式化方法。信息技术
将对象转换为其字符串表示形式,以使其适合
用于显示。有关.NET中格式支持的信息,请参见
框架,请参见格式化类型
资料来源:
使用对ToString的覆盖将允许您在Console中执行此操作;具有预期的结果。当您在ObservableCollection中循环时,通过索引访问它会以字符串的形式返回集合的完整实例/项,您现在需要使用索引或属性引用此字符串(如果是用户定义的typeclass),以便访问真正的内容,在我的例子中,我这样做是为了访问集合项的temp属性
mess[mj_key][mn_key][0].Temp.ToString()
这里我有3个维度,暂时避免,只需了解0索引返回字符串对象,然后使用.Temp访问温度
希望有帮助 我无法从datagrid中逐行提取值。每一行都应该像单独的对象一样读取。是否将datagrid绑定到可观察的集合?是的..datagrid工作正常我只想从datagrid中获取每一行值并将其写入控制台!行中的数据与集合中的数据相同。所以foreach中的每个v都是datagrid中行的数据。类似地,对于其他属性,您至少可以说出-1的原因,因为我分享了我所做的。谢谢
mess[mj_key][mn_key][0].Temp.ToString()