我有一个代码,我想将它包装到一个方法中,这样我就可以从中获得results
作为输出。 调用另一个方法,例如var NewVariable=GetMyJoinedResult();
来运行下面的代码。
我已经尝试使用public static IEnumerable<;string>; GetMyJoinedResult()
,但由于当前对象是匿名的,代码甚至不会编译。
什么类型的公共静态“??” GetMyJoinedResult()
是否应该用于此类过程?
下面是我当前的代码:
var t1 = ConnectAndRetriveDatatatable1();
var t2 = ConnectAndRetriveDatatatable2();
var firstPart = from table1 in t2.AsEnumerable()
join table2 in t1.AsEnumerable()
on (string)table1["SNAME"] equals (string)table2["SNAME"] into temp
from table2 in temp.DefaultIfEmpty()
select new
{
NRO = (string)table1["NRO"],
NRO1 = table2 != null ? (string)table2["NRO"] : string.Empty,
SNAME = (string)table1["SNAME"],
};
var secondPart = from table2 in t1.AsEnumerable()
join table1 in t2.AsEnumerable()
on (string)table2["SNAME"] equals (string)table1["SNAME"] into temp
from table1 in temp.DefaultIfEmpty()
where table1 == null
select new
{
NRO = string.Empty,
NRO1 = (string)table2["NRO"],
SNAME = (string)table2["SNAME"],
};
var results = firstPart.Concat(secondPart);
如果结果总是相同,为什么不使用类
public class YourResult{
public string NRO {get;set;}
public string NRO1 {get;set;}
public string SNAME {get;set;}
}
然后可以使用
select new YouResult
{
NRO = string.Empty,
NRO1 = (string)table2["NRO"],
SNAME = (string)table2["SNAME"],
};
和类似于:public static IEnumerable