我的ObservableCollection
在运行时填充了4列。
public ObservableCollection<object> SelectedRows;
我想从此集合中获取Id列值,但我无法使用LINQ获取此值,因为在编译时我不知道集合中是否存在Id列。
答案 0 :(得分:0)
也许是这样的:
vat w = from s in db.table
select s.id;
foreach (var i in w)
{
console.writeln(i);
}
答案 1 :(得分:0)
var selectedIndexId = from itemSelectedRows in <YourListName>.ToList<object>()
select itemSelectedRows.GetType().GetProperty("Id").GetValue(itemSelectedRows, null);
答案 2 :(得分:0)
您可以使用数据绑定来执行此操作:
<ListBox ItemsSource="{Binding SelectedRows}"
DisplayMemberPath="The property to be displayed"
SelectValuePath="The property that SelectedValue would bind to"
SelectedValue="{Binding SelectedRowId}" />
如果您需要在C#中执行此操作,我强烈建议您的对象实现您可以强制转换的通用接口。否则,您可以使用dynamic
关键字:
SelectedRows.Cast<dynamic>().Select(d => (int)d.Id)