【发布时间】:2022-01-03 14:45:34
【问题描述】:
我有两个长度相同的列表。
如果一个列表有 4 个元素,则另一个列表也有 4 个元素。
List<string> multipleJMBGs 和 List<BundleSchedule> schedules
我需要创建一个检查方法,它将检查以下内容:
-
首先检查
List<string>中是否有重复项,如果有,则从该查询中获取索引,并在这些索引中检查调度是否具有相同的 IDif schedules[x].Id == chedules[y].Id -
可以有多个相同的对,例如:
"1111", "1111" (indexes [23],[41])
"12345", "12345" (indexes [3],[11])
"16872982342716", "16872982342716" (indexes [29],[33])
这些是 3 对,所以我们需要分组,并提取它们的索引(这些数字仅用于示例目的):
private bool CheckIfSameUsersHaveSameServices(List<string> multipleJMBGs, List<BundleSchedule> schedules)
{
var duplicateJMBGs = multipleJMBGs.GroupBy(x => x)
.Where(group => group.Count() > 1)
.Select(group => new { jmbg = group.Key }).ToList();
Dictionary<string, string> indexes = new Dictionary<string, string>();
//fill in dictionary with indexes
//23,41
//3,11
//29,33
foreach (var pair in indexes)
{
var firstToCompare = schedules.ElementAt(Convert.ToInt32(pair.Key));
var secondToCompare = schedules.ElementAt(Convert.ToInt32(pair.Value));
//if only one compared pair has same serviceId, return true
if (firstToCompare.ServiceTypeComplexityId == secondToCompare.ServiceTypeComplexityId)
{
return true;
}
}
}
我的问题是如何将 GroupBy 查询的 Select 也放入列表中的那些索引?
【问题讨论】:
标签: c# .net asp.net-mvc linq