c# - 获取类型并将第二个变量转换为该类型

标签 c# generics

<分区>

Possible Duplicate:
C# generic list <T> how to get the type of T?

我有一个列表变量,我想获取该列表的类型并将第二个变量转换为该类型。为了清楚起见,我在下面添加了代码。

目前我有以下内容:

return _ValueList.Any<FieldType>(x => x.Equals((FieldType)fieldValueObject));

我想做这样的事情:

Type valueType = _ValueList.GetType();

return _ValueList.Any<FieldType>(x => x.Equals((valueType)fieldValueObject));

我们将不胜感激。

更新:

当 fieldValueObject 的类型为 Int16 并且我尝试将其转换为 Int32 时抛出无效转换异常。

更新 2:

我使用了以下解决方案:

        if (fieldValueObject.GetType() == typeof(Int16))
        {
            fieldValueObject = Convert.ToInt32(fieldValueObject);
        }
        return _ValueList.Any<FieldType>(x => x.Equals(fieldValueObject));

它不漂亮,但它有效。

最佳答案

public bool ContainsAny<T>(List<T> valueList, T fieldValueObject)
{
    return valueList.Any(x => x.Equals(fieldValueObject));
}

public bool ContainsAny<T>(List<T> valueList, object fieldValueObject)
{
    return valueList.Any(x => x.Equals((T)fieldValueObject));
}

请注意,第二个可以抛出 InvalidCastException。

关于c# - 获取类型并将第二个变量转换为该类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11665481/

相关文章:

c# - 如何从 NetworkStream 获取所有数据

c# - 为 IComparer<DictionaryEntry> 实现 IComparer<T>

java - 无法将 T 类型的对象添加到 Java 中的 List<T>

c# - 枚举的通用类 - 转换问题

javascript - Angular 服务器端呈现模板 (.cshtml) 使用转义符号解析错误

c# - 如何找出 AppCrash 的原因?

c# - 从集合中随机返回项目

generics - Kotlin将类转换为Unit

c# - asp.net 中的身份验证

c# - & 符号后跟 int.MaxValue 向下舍入吗?