我有两种变量数据类型,我希望两者都与之结合。我该怎么做?
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 。如果您在第二选择中交换foo
和bar
的顺序,则摘要中的错误会消失,然后将bar
变成第三个中的INT值。
在您的示例中,ptime
在两个列表之间的类型不同 - 字符串和对象。