我有一个关于填充网格的问题。
好了,
假设我们有一个网格,用于打印篮球队的一些数据。
我们有四个主要的类:
public class Player
{
public string PlayerName { get; set; }
}
public class Staff
{
public string StaffName { get; set; }
}
public class Fan
{
public string FanName { get; set; }
public List<string> FanFavoriteTeam { get; set; }
}
public class Team
{
public string TeamName { get; set; }
public List<Player> Players { get; set; }
public List<Staff> Staff { get; set; }
public List<Fan> Fans { get; set; }
}
…当然还有填充网格的class
public class Result
{
public string TeamName { get; set; }
public string PlayerName { get; set; }
public string StaffName { get; set; }
public string FanName { get; set; }
public string FanFavoriteTeam { get; set; }
}
我想打印所有可能的组合,例如,假设我们有这样的数据:
球队名称-金州勇士队球员:斯蒂芬·库里,凯文·杜兰特
员工-史蒂夫·科尔,阿尔文·金特里,罗恩·亚当斯球迷:杜克·阿拉德(凯尔特人,湖人),多里安·梅西,拉蒙特·科林伍德
Grid应该打印这个信息:
1st row)Golden State - Stephen Curry - Steve Kerr - Duke Allard - Celtics
2)Golden State - Stephen Curry - Steve Kerr - Duke Allard - Lakers
3)Golden State - Stephen Curry - Steve Kerr - Dorian Macy
4)Golden State - Stephen Curry - Steve Kerr - Lamont Collingwood
5)Golden State - Stephen Curry - Alvin Gentry - Duke Allard - Celtics
6)Golden State - Stephen Curry - Alvin Gentry - Duke Allard - Lakers
7)Golden State - Stephen Curry - Alvin Gentry - Dorian Macy
8)Golden State - Stephen Curry - Alvin Gentry - Lamont Collingwood
9)Golden State - Stephen Curry - Ron Adams - Duke Allard - Celtics
10)Golden State - Stephen Curry - Ron Adams - Duke Allard - Lakers
11)Golden State - Stephen Curry - Ron Adams - Dorian Macy
12)Golden State - Stephen Curry - Ron Adams - Lamont Collingwood
13)Golden State - Kevin Durant - Steve Kerr - Duke Allard - Celtics
14)Golden State - Kevin Durant - Steve Kerr - Duke Allard - Lakers
15)Golden State - Kevin Durant - Steve Kerr - Dorian Macy
16)Golden State - Kevin Durant - Steve Kerr - Lamont Collingwood
17)Golden State - Kevin Durant - Alvin Gentry - Duke Allard - Celtics
18)Golden State - Kevin Durant - Alvin Gentry - Duke Allard - Lakers
19)Golden State - Kevin Durant - Alvin Gentry - Dorian Macy
20)Golden State - Kevin Durant - Alvin Gentry - Lamont Collingwood
21)Golden State - Kevin Durant - Ron Adams - Duke Allard - Celtics
22)Golden State - Kevin Durant - Ron Adams - Duke Allard - Lakers
23)Golden State - Kevin Durant - Ron Adams - Dorian Macy
24)Golden State - Kevin Durant - Ron Adams - Lamont Collingwood
注:我想要实现这一点,而不是链式foreach语句
P.P.S.很抱歉有这么长的描述
您可以使用LINQ为您执行循环:
var result = from t in teams
from p in players
from s in staff
from f in fans
select new Result {
TeamName = t.TeamName,
PlayerName = p.PlayerName,
StaffName = s.StaffName,
FanName = f.FanName,
}
这基本上是对表格进行交叉连接,没有任何限制,因此每个团队都与每个球员,工作人员和球迷相匹配,并且我们得到了数据的笛卡尔积。