我不知道這是否可能,但我會盡量用最好的方式解釋自己。謝謝您的幫助。
我正在嘗試將這些物體物件與第三方集成。
我的問題是,我有這3個第三方物體型別,ObjectType1,ObjectType2,ObjectType3物件類,所有這些都有相同的基礎,所以,為了不重復代碼,我的想法是創建一個函式接受一個通用串列并在其中嘗試轉換為我想要的物件型別并用于將資訊保存在我的主體物體中。
我不知道這是否可行,或者您會建議我做什么,因為我要做的不是多次重復代碼。
再次感謝你。
public static List<ItemsToSave> TestList<T>(List<T> listOfT)
{
var itemsToSave = new List<ItemsToSave>();
foreach (var item in listOfT)
{
object obj = null;
switch (listOfT)
{
case List<ObjectType1>:
obj = item as ObjectType1;
break;
case List<ObjectType2>:
obj = item as ObjectType2;
break;
case List<ObjectType3>:
obj = item as ObjectType2;
break;
}
var itemtosaveEntity = new ItemsToSave()
{
FirstName = obj.FirstName,
MiddleName = obj.MiddleName,
LastName = obj.LastName,
};
itemsToSave.Add(itemtosaveEntity);
}
return itemsToSave;
}
uj5u.com熱心網友回復:
試試這個
var listOfT = new List<BaseType>();
List<ItemsToSave> itemsToSave = ConvertList(listOfT);
public static List<ItemsToSave> ConvertList<T>(List<T> listOfT) where T : BaseType
{
return
listOfT
.Select(i => new ItemsToSave()
{
FirstName = i.FirstName,
MiddleName = i.MiddleName,
LastName = i.LastName,
})
.ToList();
}
uj5u.com熱心網友回復:
您可以像這樣定義通用函式:
public static List<ItemsToSave> TestList<T>(List<T> listOfT) where t : BaseClass
這被稱為“通用約束”,在此處閱讀更多
這樣,您在函式中擁有的型別將是BaseClass并且您可以訪問該類中定義的所有屬性。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/420224.html
標籤:
