如何从一个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个答案表示它的答复。虽然可能有资格获得复制。 –