簡體   English   中英

如何轉換IList <string> 到一個字符串[]而不使用Linq

[英]How to convert IList<string> to a string[] without using Linq

我不確定將IList<string>IList沒有實現ToArray屬性)轉換為string[]數組的最佳方法是什么。

我不能使用Linq因為我正在使用.NET 2.0進行編譯。 任何想法都會很好。

使用ICollection<T>.CopyTo

string[] strings = new string[list.Count];
list.CopyTo(strings, 0);

我不太確定我是否理解無LINQ限制? 如果IList<T>擁有它,聽起來你會使用ToArray 但事實證明它是因為IEnumerable<T>.ToArrayIEnumerable<T>.ToArray IList<T>實現的IEnumerable<T>上定義的擴展方法。 那你為什么不用它呢?

如果你被迫擁有IList,那么得到一個數組......

IList list; 
var array = new List<string>(list).ToArray()

ToArray是IEnumerable的擴展方法,IList實現IEnumerable。 如果導入它,就可以執行此操作。

無論如何,您將不得不創建一個數組並使用列表中的內容填充它的內容。 這是最直接的方式。

var arr = new string[Your_List.Count]

for(var ii = 0; ii < arr.Length; ii++){
   arr[ii] = Your_List[ii];

}

嘗試:

 public static T[] ToArray<T>(this IList<T> list)  
    {  
        if (list is Array) return (T[]) list;  

        T[] retval = new T[list.Count];  
        for (int i = 0; i < retval.Length; i++)   
            retval[i] = list[i];  

        return retval;  
    }  

它只是一個粗糙的。可能是它的幫助。

暫無
暫無

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

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