相关疑难解决方法(0)

通用类型转换FROM字符串

我有一个类,我想用它来存储另一个类的"属性".这些属性只有名称和值.理想情况下,我想要的是能够添加类型属性,以便返回的"值"始终是我想要的类型.

类型应该始终是原始的.此类是一个抽象类的子类,它基本上将名称和值存储为字符串.这个想法是这个子类将为基类添加一些类型安全性(以及节省我的一些转换).

所以,我创建了一个类(大致)这个:

public class TypedProperty<DataType> : Property
{
    public DataType TypedValue
    {
        get { // Having problems here! }
        set { base.Value = value.ToString();}
    }
}
Run Code Online (Sandbox Code Playgroud)

所以问题是:

是否有一种"通用"方式从字符串转换回原语?

我似乎找不到任何通用的界面来连接整个转换(像ITryParsable这样理想!).

c# generics primitive type-safety

221
推荐指数
5
解决办法
12万
查看次数

C#Generic List转换为实现List <T>的类

以下代码产生问题

无法将类型隐式转换'System.Collections.Generic.IEnumberable<DataField<string>>'为"DataFields".存在显式转换(您是否错过了演员?).

我该如何解决这个问题?我究竟做错了什么?

public class DataFields : List<DataField>
{
}

public abstract class DataField
{
    public string Name { get; set; }
}

public class DataField<T> : DataField
{
    public T Value { get; set; }
}

public static DataFields ConvertXML(XMLDocument data) {
    DataFields result = (from d in XDocument.Parse(data.OuterXML).Elements()
                      select new DataField<string>
                      {
                          Name = d.Name.ToString(),
                          Value = d.Value
                      }).ToList();
    return result;
}
Run Code Online (Sandbox Code Playgroud)

编辑:将以下信息移至另一个问题.

使用LINQ创建List <T>,其中T:someClass <U>

另外,我希望能够在此语句中执行类似下面的操作,以便为每个语句设置值的类型.我怎样才能做到这一点.

select new DataField<[Attribute of element called type]>
{
  Name …
Run Code Online (Sandbox Code Playgroud)

c# generics list linq-to-xml

3
推荐指数
1
解决办法
1192
查看次数

标签 统计

c# ×2

generics ×2

linq-to-xml ×1

list ×1

primitive ×1

type-safety ×1