菜鸟求助:如何合并表格?

mjzxlmg 2021-03-10 03:01:18
表1

单位 部门
A1 B1
A1 B2
A1 B3
A2 C1
A2 C2
A2 C3
A2 C4


表2

月份
1月
2月
3月

想用Linq 得出结果如下,该如何做?

单位 部门 月份
A1 B1 1月
A1 B1 2月
A1 B1 3月
A1 B2 1月
A1 B2 2月
A1 B2 3月
A1 B3 1月
A1 B3 2月
A1 B3 3月
A2 C1 1月
A2 C1 2月
A2 C1 3月
A2 C2 1月
A2 C2 2月
A2 C2 3月
A2 C3 1月
A2 C3 2月
A2 C3 3月
A2 C4 1月
A2 C4 2月
A2 C4 3月

...全文
2689 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
极客诗人 2021-03-12
  • 打赏
  • 举报
回复
对了 应该是叫 卡迪尔积
极客诗人 2021-03-12
  • 打赏
  • 举报
回复
看见这段代码 想到以前的神操作

class Program
    {
        static void Main(string[] args)
        {
            List<A> AList = new List<A>() {
                new A(){  单位="a" ,部门="b"},
                new A(){  单位="a1" ,部门="b"}
            };

            List<B> BList = new List<B>(){
                new B(){  月份="b" },
                new B(){  月份="b1"}
            };
            var result = from a in AList
                         from b in BList 
                         select new
                         {
                             单位 = a.单位,
                             部门 = a.部门,
                             月份 = b.月份
                         };
            var result1 = AList.Join(BList,AList=>1,BList=>1,(x, y) => new {
                单位 = x.单位,
                部门 = x.部门,
                月份 = y.月份
            });
        }
    }
    public class A {
        public string 单位 { get; set; }
        public string 部门 { get; set; }
    }

    public class B
    {
        public string 月份 { get; set; }
    }
兔子-顾问 2021-03-12
  • 打赏
  • 举报
回复

static void Main(string[] args)
{
    DataTable table1 = new DataTable();
    table1.Columns.Add("单位", typeof(string));
    table1.Columns.Add("部门", typeof(string));
    table1.Rows.Add("A1", "B1");
    table1.Rows.Add("A1", "B2");
    table1.Rows.Add("A1", "B3");
    table1.Rows.Add("A2", "C1");
    table1.Rows.Add("A2", "C2");
    table1.Rows.Add("A2", "C3");
    table1.Rows.Add("A2", "C4");

    DataTable table2 = new DataTable();
    table2.Columns.Add("月份", typeof(string));
    table2.Rows.Add("1月");
    table2.Rows.Add("2月");
    table2.Rows.Add("3月");

    var result = from a in table1.AsEnumerable()
                    from b in table2.AsEnumerable()
                    select new
                    {
                        单位 = a.Field<string>("单位"),
                        部门 = a.Field<string>("部门"),
                        月份 = b.Field<string>("月份")
                    };
    Console.WriteLine(result.Count().ToString());
    Console.ReadKey();
}
那你是这个意思么
mjzxlmg 2021-03-11
  • 打赏
  • 举报
回复
谢谢你的回答,程序中用list(of t),没有用数据库所以才有此发问。
兔子-顾问 2021-03-11
  • 打赏
  • 举报
回复
数据库问题?不是Linq? SELECT * from t1 left join t2

8,494

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧