簡體   English   中英

c#:將對象轉換為通用列表

[英]c#: Convert object to a generic list

我有一個數據結構,其中變量是object類型。 但是,我知道在運行時此對象肯定是List<T> ,其中T應該涵蓋多種情況(例如intstring ,...)。 在以下代碼中,我想使用特定於List<T>功能,例如Linq函數。

通過以下檢查,我確定它是一個列表:

if (constantExpression.Value.GetType().GetGenericTypeDefinition() == typeof(List<>)) 
{
    // Want to use Linq here
}

這可能嗎? 不幸的是,我發現網上沒有任何幫助。

如果可以將列表作為List<object>() ,則可以執行以下操作:

var listOfObjects = ((IEnumerable)constantExpression.Value).Cast<object>();

這遠非完美,但如果您不想像評論中所建議的那樣使用反射或使用dynamic ,那可能是最好的選擇。

暫無
暫無

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

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