gpt4 book ai didi

c# - 将 LINQ Except() 与两个不同类型的集合一起使用

转载 作者:太空宇宙 更新时间:2023-11-03 20:30:21 25 4
gpt4 key购买 nike

我无法使用示例 here因为它特定于提问者使用的结构。

目前,我要去:

PropertyInfo[] props = this.GetType().GetProperties();
foreach (DataColumn dataColumn in dataAsDataRow.Table.Columns)
if( !props.Any(p => p.Name == dataColumn.ColumnName) )
...

我宁愿在一行中包含一些内容,例如:

foreach (DataColumn dataColumn in dataAsDataRow.Table.Columns.Cast<DataColumn>.Except(props) )
...

有什么想法吗?

最佳答案

var columns = dataAsDataRow.Table.Columns.Cast<DataColumn>().Where(column => !props.Any(p => p.Name == column.ColumnName);
foreach(DataColumn in columns)
....

或略微优化的版本(一如既往,取决于运行时的列数、属性等):

PropertyInfo[] props = this.GetType().GetProperties();
var lookup = new HashSet<string>(props.Select(x=>x.Name));
var columns = dataAsDataRow.Table.Columns.Cast<DataColumn>().Where(column => !lookup.Contains(column.Name));

关于c# - 将 LINQ Except() 与两个不同类型的集合一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7851774/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com