我有3个数据库表,其中包含具有日期属性的记录.我的目标是从3个表中的每个表中检索所有日期并将它们放入不同的列表中.我目前正在这样做,它正在工作:
var allYears = new List<List<int>>();
var lstTableOneYears = db.TableOne.Select(x => x.DateTakenRT.Year).Distinct().ToList();
var lstTableTwoYears = db.TableTwo.Select(x => x.DateTakenPIC.Year).Distinct().ToList();
var lstTableThreeYears = db.TableThree.Select(x => x.DateTakenMT.Year).Distinct().ToList();
allYears.Add(lstTableOneYears);
allYears.Add(lstTableTwoYears);
allYears.Add(lstTableThreeYears);
var distinctYears = allYears.SelectMany(x => x).Distinct().ToList();
Run Code Online (Sandbox Code Playgroud)
以上是有效的,但我希望有更好的方法来用更少的线写这个?也许更好地使用LINQ?
任何帮助或建议表示赞赏.
你可以使用Union.
var distinctYears = db.TableOne.Select(x => x.DateTakenRT.Year)
.Union(db.TableTwo.Select(x => x.DateTakenPIC.Year))
.Union(db.TableThree.Select(x => x.DateTakenMT.Year))
.ToList();
Run Code Online (Sandbox Code Playgroud)
在旁注中,您可以使用AddRange代替上面代码中包含列表的List.
| 归档时间: |
|
| 查看次数: |
79 次 |
| 最近记录: |