- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个类型为 List 的集合,我想将其转换为 SomeType[]。 SomeType 在运行前是未知的。
这必须通过以下过程的签名来完成。
private object ConvertListToArray(IList collection)
{
// This does not work since SomeType is not known before runtime.
var convertedList = collection.Cast<SomeType>().ToArray();
return convertedList;
}
注意collection是IList,但是已知具体类型是
List<SomeType>
返回的集合必须是 SomeType[] 类型的对象。
如何做到这一点?
最佳答案
public static class ListExtensions
{
public static T[] ConvertToArray<T>(IList list)
{
return list.Cast<T>().ToArray();
}
public static object[] ConvertToArrayRuntime(IList list, Type elementType)
{
var convertMethod = typeof(ListExtensions).GetMethod("ConvertToArray", BindingFlags.Static | BindingFlags.Public, null, new [] { typeof(IList)}, null);
var genericMethod = convertMethod.MakeGenericMethod(elementType);
return (object[])genericMethod.Invoke(null, new object[] {list});
}
}
[TestFixture]
public class ExtensionTest
{
[Test]
public void TestThing()
{
IList list = new List<string>();
list.Add("hello");
list.Add("world");
var myArray = ListExtensions.ConvertToArrayRuntime(list, typeof (string));
Assert.IsTrue(myArray is string[]);
}
}
关于c# - 将 IList 转换为 SomeType[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12313672/
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
最近我在代码中遇到了以下结构: typedef sometype sometype; 请注意,“sometype”代表完全相同的类型,没有任何添加,如“struct”等。 我想知道它有什么用? UPD
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicates: Direct casting vs 'as' operator? casting vs using the
假设您有: Func a = () => "string here"; Func b = () => "other string here"; var c = a + b; 现实世界需要什么? 最佳答
我正在编写一个反序列化 json 响应的方法,如下所示: public T parse(T t) throws IOException { ObjectMapper mapper = get
我在代码中看到下一条语句: SomeType someVar[1]; 稍后someVar被用作指向SomeType的指针。为什么要这样声明而不是: SomeType* someVar; 编辑:正如许多
这是C++ Primer 5th Edition中的练习: Exercise 16.26: Assuming NoDefault is a class that does not have a def
为什么会这样: public List getData(T data) { Location loc = (Location) data; // ... } 不会产生任何警告,同时:
这个问题已经有答案了: Initialize empty arraylists in Spring configuration? (4 个回答) 已关闭 4 年前。 我有这样的bean注入(injec
这个问题在这里已经有了答案: 关闭 9 年前。 Possible Duplicate: Difference between TargetType=“controlType” and TargetT
class SomeClass: ThirdPartyBaseClass { private var someValue: AnotherType? = null override f
我有一个函数,它接受其他几个函数作为参数: class Iterator { func iterateItems(itemArray: [Items], removeItem: (Items)
让我们举个例子。如果正确理解,System.IO.FileStream是一个类,但是[System.IO.FileStream]是一个对象:它是System.RuntimeType类的实例。 如果运行
我有很多看起来像这样的 C# VS2008 代码: new SqlParameter("@Description", SqlDbType.NChar, 1500) 或者这个: new SqlParam
我有一些功能需要 List我有一个对象,我知道它应该是 ArrayList 类型. 我如何测试它是否真的存在以及如何在不收到警告的情况下将对象转换为该类型? 类似于: ArrayList testL
我遇到过几次这种句法结构,我想知道: 这是做什么的? 设计推理可能是什么? 它看起来像这样: struct SubType : public SomeSuperType { SubType(i
这个问题在这里已经有了答案: What does "code: => Unit" mean in scala? (4 个回答) 9年前关闭。 今天想问一下=> SomeType意思是。我发现它用于 t
我正在尝试将数据表列转换为系列数组(稍后我将使用它将它们序列化为 Json),但不确定如何将字符串数组转换为 IList?或者也许我应该使用其他方法?但不知道如何将字符串数组转换为 IList ?或者
“Sometype* const*”是什么意思? 它等同于 const SomeType* 吗? 我在 UE4 的 TMap 数据结构的 find Key 函数中遇到过它,这是我第一次看到这样的东西。
不幸的是,在 Actionscript 中,似乎还没有完全支持 Vector 类。在某些情况下,我需要将 Vector 转换为数组(例如创建 ArrayCollection)。我认为这可以解决问题:
我是一名优秀的程序员,十分优秀!