簡體   English   中英

如何從方法返回匿名類型?

[英]How can I return an anonymous type from a method?

我有一個Linq查詢,我想從多個地方調用:

var myData = from a in db.MyTable
             where a.MyValue == "A"
             select new  {
                            a.Key,
                            a.MyValue
                          };

如何創建方法,將此代碼放入其中,然后調用它?

public  ???  GetSomeData()
{
   // my Linq query
}

IQueryable和IEnumerable都有效。 但是您想使用特定於類型的版本,IQueryable < T >或IEnumerable < T >

因此,您需要創建一個類型來保存數據。

var myData = from a in db.MyTable
             where a.MyValue == "A"
             select new MyType
             {
                 Key = a.Key,
                 Value = a.MyValue
             };

IQueryable

所以你的方法聲明看起來像

public IQueryable GetSomeData()

通用方法應該給你智能感知:

public class MyType {Key{get;set;} Value{get;set}}

public IQueryable<T> GetSomeData<T>() where T : MyType, new() 
 { return from a in db.MyTable
          where a.MyValue == "A" 
          select new T {Key=a.Key,Value=a.MyValue};
 }

如果要返回,則需要一個類型。

而不是var ,使用IEnumerable<>聲明並返回該變量。 迭代它實際上執行查詢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM