我使用了一招回匿名类型,但是,我不能肯定是否会在所有情况下 工作。如果使用这一招的任何问题PLZ让我知道 所以,我不会在我的项目返回匿名类型
class A
{
public int ID { get; set; }
public string Name { get; set; }
}
class B
{
public int AID { get; set; }
public string Address { get; set; }
}
private List<object> GetJoin()
{
var query = from a in objA
join b in objB
on a.ID equals b.AID
select new { a.ID, a.Name, b.Address };
List<object> lst = new List<object>();
foreach (var item in query)
{
object obj = new { ID = item.ID, Name = item.Name, Address = item.Address };
lst.Add(obj);
}
return lst;
}
T Cast<T>(object obj, T type)
{
return (T)obj;
}
//call Anonymous Type function
foreach (var o in GetJoin())
{
var typed = Cast(o, new { ID = 0, Name = "", Address = "" });
int i = 0;
}
最大的问题是:为什么不创建一个名义类型,并完全放弃这些恶作剧? `class NameAndAddress {public int ID {get;组; } public string Name {get;组; } public string Address {get;组; }}。问题解决了。 – 2011-02-16 11:39:24
Becoz为每一个linq查询我不想创建一个类 – Tuscan 2011-02-16 11:44:01