c# - 将两个属性合并到普通列表c#中
问题描述
我试图以某种方式获取包含原始客户ID和sallerid的列表。是否可以使用两次选择然后联合来完成,是否有任何简写方式。代码如下:
public class Model
{
public int CustomerId { get; set; }
public int SallerId { get; set; }
}
var list = new List<Model>
{
new Model(),
new Model()
};
var customerIds = list.Select(model => model.CustomerId);
var sallerIds = list.Select(model => model.SallerId);
var userIds = customerIds.Union(sallerIds);
如何通过一个操作而不是三个操作来获取 userId
解决方案
您可以在一个管道中执行此操作,如下所示:
var result = list.SelectMany(x => new int[] {x.CustomerId, x.SallerId})
.Distinct();
这基本上将每个对象投影CustermerId
到SallerId
一个数组中,然后折叠嵌套序列,最后调用Distinct
删除重复项。
推荐阅读
- javascript - 提交后刷新 twitter 引导表单向导
- java - Java 将图像文件缩小到目标文件大小
- excel - 我收到运行时错误“438”:对象不支持此属性或方法
- java - 使用未声明的依赖项
- c++ - C ++:指针向量对更改没有反应
- python - 使用累积模式为 original_str 中的单词创建单词长度列表
- java - 如何在java中创建带有特定图像的保存文件?
- javascript - 如何设置 api-platform react-admin graphql 堆栈?
- c# - 缺少程序集引用和/或指令“找不到类型或命名空间名称”
- python - 有没有办法将值以数组形式插入到表中?