【发布时间】:2017-10-02 07:27:45
【问题描述】:
我有两个列表:
static List<Parts> partList = new List<Parts>();
它所指的类:
class Parts
{
int chassisNumber;
public int ChassisNumber
{
get { return chassisNumber; }
set { chassisNumber = value; }
}
int partsCount;
public int PartsCount
{
get { return partsCount; }
set { partsCount = value; }
}
还有一个:
static List<int> shuffledChassisList = new List<int>();
shuffledChassisList 包含加载到 List ChassisNumber 中的机箱编号子集。 我想使用 shuffledChassisList 将 List 查询成一个新的 List,例如:List filteredPartList。
我尝试使用 Linq,但未能编写一个有效的解决方案来创建一个包含过滤结果的新列表。
然后,我想使用此过滤列表根据零件编号将零件分类到新列表中(例如:我想将 List filteredPartList 中的所有零件复制到 List emptyPackageList 中,其中零件的 partsCount 为 0)。
到目前为止,我得到了这个,但不确定在 foreach 循环中要写什么:
static List<Parts> emptyPackageList = new List<Parts>();
var emptyPackage = filteredPartList.Where(p => p.partsCount == 0);
foreach (var part in emptyPackage)
{
emptyPackageList.Add(new Parts(??));
}
如果可以编写一种方法来完成这两件事,那对我来说很好。
编辑:
我需要两个列表的原因是因为我查询数据库以获取底盘编号和属于它的零件数量。我询问了社区,但不幸的是,似乎无法在选定的底盘号上运行此查询。所以我有所有底盘编号 (List<Parts> partList) 的零件计数,我需要用我正在寻找的那些 (List<int> shuffledChassisList) 进行过滤,然后按零件计数分组到新列表中。
如果可以或更容易通过List<int> shuffledChassisList 过滤List<Parts> partList,然后按partsCount 对结果进行分组,然后将Parts 复制到几个新列表中,那么这也是一个可以接受的解决方案。
【问题讨论】:
-
不清楚这两个列表的部分是如何连接到给定代码sn -p的
-
shuffledChassisList 包含 chassisNumbers(但仅是 partList 中的子集),它在 Parts 类中也可用。查看我对布鲁诺回答的评论,了解为什么需要有两个不同的列表。谢谢。
-
你应该澄清它而不是 cmets - 对未来的读者来说很清楚