两个VAR变量数据类型的联合



我有两种变量数据类型,我希望两者都与之结合。我该怎么做?

var results = from table1 in dtTimeListTable.AsEnumerable()
              join table2 in readyDataTable.AsEnumerable() on (decimal)table1["Avnr"] equals (int)table2["Avnr"]
              orderby table2["Substation"],  table2["S6_NAME"]
              select new
              {
                   Substation = (string)table2["Substation"],
                   S6_NAME = (string)table2["S6_NAME"],
                   ptime = ((DateTime)table1["DBTM"]).ToString("dd/MM/yyyy HH:mm").Substring(11, 5),
                   Wert = (decimal)table1["Wert"]
              };
var resultsMaxMin = from table1 in dtMaxMin.AsEnumerable()
              join table2 in readyDataTable.AsEnumerable() on (decimal)table1["Avnr"] equals (int)table2["Avnr"]
              orderby table2["Substation"], table2["S6_NAME"]
              select new
              {
                   Substation = (string)table2["Substation"],
                   S6_NAME = (string)table2["S6_NAME"],
                   ptime =table1["ptime"],
                   Wert = (decimal)table1["Wert"]
              };

此片段可能会有所帮助:

            var list = new List<int>();
            var sublist1 = list.Select(x => new { foo = 1, bar = 2, baz = "baz" });
            var sublist2 = list.Select(x => new { bar = 3, foo = 1, baz = "baz" });
            var sublist3 = list.Select(x => new { foo = 3, bar = "a", baz = "baz" });
            var union1 = sublist1.Union(sublist2); // compilation error
            var union2 = sublist1.Union(sublist3); // compilation error

union((调用仅当匿名类型与字段完全匹配 - name droping types 。如果您在第二选择中交换foobar的顺序,则摘要中的错误会消失,然后将bar变成第三个中的INT值。

在您的示例中,ptime在两个列表之间的类型不同 - 字符串和对象。

最新更新