下面的代碼產生的問題C#泛型列表轉換爲類實現列表<T>
不能鍵入
'System.Collections.Generic.IEnumberable<DataField<string>>'
隱式轉換爲「數據域」。存在明確的轉換(您是否缺少演員?)。
我該如何解決這個問題?我究竟做錯了什麼?
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;
}
編輯:將下面的信息移動到另一個問題。
Using LINQ to create a List<T> where T : someClass<U>
另外我想能夠做這樣的事情在此聲明如下,以便爲每個值的類型。我怎樣才能做到這一點。
select new DataField<[Attribute of element called type]>
{
Name = d.Name.ToString(),
Value = d.Value
}
如何,或者爲什麼會編譯器知道使用'DataFields'作爲'ToList的結果處理這多虧了一些有識之士的一種方式()'呼叫?爲什麼它不會選擇'DataFields2'(DataFields'的一個子類)或'DataFields3'(一個從List''派生的無關類)? –
全部。很明顯,我還沒有想到這一點,但似乎應該有可能。也許是另一種方法?在這裏,我不知所措,只是在尋找一些想法 –