如何從一個IEnumerable變量轉換爲int []在c#中的變量?將IEnumerable <int>轉換爲int []
12
A
回答
18
如果你能如果您在使用.NET 2是,那麼你可以只是撕掉System.Linq.Enumerable如何實現使用System.Linq的
使用.ToArray()
擴展方法。 ToArray
擴展方法(我幾乎是逐字這裏舉的代碼 - 它需要一個微軟?):
struct Buffer<TElement>
{
internal TElement[] items;
internal int count;
internal Buffer(IEnumerable<TElement> source)
{
TElement[] array = null;
int num = 0;
ICollection<TElement> collection = source as ICollection<TElement>;
if (collection != null)
{
num = collection.Count;
if (num > 0)
{
array = new TElement[num];
collection.CopyTo(array, 0);
}
}
else
{
foreach (TElement current in source)
{
if (array == null)
{
array = new TElement[4];
}
else
{
if (array.Length == num)
{
TElement[] array2 = new TElement[checked(num * 2)];
Array.Copy(array, 0, array2, 0, num);
array = array2;
}
}
array[num] = current;
num++;
}
}
this.items = array;
this.count = num;
}
public TElement[] ToArray()
{
if (this.count == 0)
{
return new TElement[0];
}
if (this.items.Length == this.count)
{
return this.items;
}
TElement[] array = new TElement[this.count];
Array.Copy(this.items, 0, array, 0, this.count);
return array;
}
}
有了這個,你簡直可以這樣做:
public int[] ToArray(IEnumerable<int> myEnumerable)
{
return new Buffer<int>(myEnumerable).ToArray();
}
3
IEnumerable<int> i = new List<int>{1,2,3};
var arr = i.ToArray();
14
呼叫ToArray
在使用LINQ指令後:
using System.Linq;
...
IEnumerable<int> enumerable = ...;
int[] array = enumerable.ToArray();
這需要.NET 3.5或更高版本。讓我們知道您是否使用.NET 2.0。
1
IEnumerable to int[] - enumerable.Cast<int>().ToArray();
IEnumerable<int> to int[] - enumerable.ToArray();
1
IEnumerable<int> ints = new List<int>();
int[] arrayInts = ints.ToArray();
只要你正在使用LINQ :)
相關問題
- 1. 如何將IEnumerable <IEnumerable <IGrouping <int,string> >>轉換爲IEnumerable <IEnumerable <string>>
- 2. 如何將IEnumerable <IGrouping <int,DataRow >>轉換爲DataTable?
- 3. 將函數Func <IList, int>轉換爲Func <IEnumerable,int>?方法
- 4. 將鋸齒形數組轉換爲IEnumerable <KeyValuePair <int,int>>?
- 5. 將lambda類型從int => IEnumerable <string>>轉換爲int =>任務<IEnumerable <string> >>?
- 6. 如何將IEnumerable <int>轉換爲Int32
- 7. 如何將`IEnumerable <Unknown T>`轉換爲`IEnumerable <Whatever>`
- 8. 如何將managementobject集合轉換爲IEnumerable <IEnumerable <IPropertyData >>?
- 9. 將IEnumerable <X>轉換爲IEnumerable <Y>
- 10. 如何將IEnumerable <IEnumerable <T>>轉換爲IEnumerable <T>
- 11. 將ArrayList <int[]>轉換爲int [] []
- 12. 將IEnumerable <XElement>轉換爲XElement
- 13. 將DataRowCollection轉換爲IEnumerable <T>
- 14. 將IEnumerable <dynamic>轉換爲DataTable
- 15. 將IEnumerable <dynamic>轉換爲JsonArray
- 16. 如何將List <IEnumerable <ProductViewModel >>轉換爲<IEnumerable <ProductViewModel >>?
- 17. 如何將List <KeyValuePair <int,int>>轉換爲int [] []?
- 18. 無法將IEnumerable的匿名類型轉換爲IEnumerable <dynamic>?
- 19. 如何將IEnumerable <IEnumerable <T>>轉換爲列表<string>?
- 20. 將listView.SelectedIndices轉換爲列表<int>
- 21. 如何將System.Linq.Enumerable.WhereListIterator <int>轉換爲列表<int>?
- 22. 如何將範圍<Int>轉換爲集<Int>?
- 23. 無法從IEnumerable <T>轉換爲IEnumerable <T>
- 24. 分組IEnumerable <IEnumerable <int>>
- 25. 將IEnumerable轉換爲列表
- 26. 將IEnumerable轉換爲DataTable
- 27. 將IEnumerable轉換爲ObservableCollection
- 28. 在C#中,如何將IEnumerable <IMyInterface>的數組轉換爲IEnumerable <T>?
- 29. 如何將列表<object>轉換爲IEnumerable <T>
- 30. 將數據集轉換爲IQueryable <T>或IEnumerable <T>
使用.ToArray()擴展方法。 –
對於downvoter(s):對你來說它可能是顯而易見的,但這是否值得DV?大多數問題的答案對某人來說是顯而易見的。 – spender
@spender - 就像在英國的比賽中誰想成爲百萬富翁?如果你知道答案,這很容易! 這不是一個壞問題 - 這是完全合理的,5個答案表示它的答覆。雖然可能有資格獲得複製。 –