2013-10-14 56 views
0
public static List<IndianAppStore_GetAllAppsByLanguage_ResultCache> GetAllApps(bool initialized, string language) 
{ 
    List<IndianAppStore_GetAllAppsByLanguage_ResultCache> objApp = new List<IndianAppStore_GetAllAppsByLanguage_ResultCache>(); 

    List<IndianAppStore_GetAllAppsByLanguage_Result> objApps = new List<IndianAppStore_GetAllAppsByLanguage_Result>(); 

    if (initialized == false) 
    { 
     var t = ListCopy(objApps, x => (IndianAppStore_GetAllAppsByLanguage_ResultCache)x); // Error 
     objApp = admin.getAllAppsByLanguage(language).ToList(); 
    } 
    else 
    { 
    } 
} 

public static List<TResult> ListCopy<TSource, TResult>(List<TSource> input, Func<TSource, TResult> convertFunction) 
{ 
    return input.Select(x => convertFunction(x)).ToList(); 
} 

我的班級如何一個泛型列表轉換爲另一種

public class IndianAppStore_GetAllAppsByLanguage_ResultCache 
{ 
    public long AppId { get; set; } 
    public string AppName { get; set; } 
    public string AppDisplayName { get; set; } 
    public string AppDetails { get; set; } 
    public string AppImageURL { get; set; } 
    public byte[] AppImageData { get; set; } 
    public long CategoryId { get; set; } 
    public Nullable<long> SubCategoryId { get; set; } 
    public string AppCreatedBy { get; set; } 
    public System.DateTime AppCreatedOn { get; set; } 
    public string AppModifiedBy { get; set; } 
    public Nullable<System.DateTime> AppModifiedOn { get; set; } 
    public Nullable<bool> isDeleted { get; set; } 
    public Nullable<bool> isPromotional { get; set; } 
    public string GenderTarget { get; set; } 
    public Nullable<long> CountryId { get; set; } 
    public Nullable<long> StateId { get; set; } 
    public Nullable<long> AgeLimitId { get; set; } 
    public Nullable<int> AppMinAge { get; set; } 
    public Nullable<int> AppMaxAge { get; set; } 
} 

enter image description here

我想一個泛型類轉換爲另一種,但得到這個錯誤

+0

IndianAppStStore_GetAllAppsByLanguage_ResultCache和IndianAppStore_GetAllAppsByLanguage_Result類是否相同? –

+0

是的他們有相同的屬性,但他們在不同的命名空間 – vini

+1

列表 .ConvertAll(TOutput) - 請參閱http://msdn.microsoft.com/en-us/library/73fe8cwf.aspx –

回答

1

IndianAppStore_GetAllAppsByLanguage_ResultIndianAppStore_GetAllAppsByLanguage_ResultCache是不同的類型,當你在這個聲明中這樣做,你可以不投第一種類型到另:

var t = ListCopy(objApps, x => (IndianAppStore_GetAllAppsByLanguage_ResultCache)x); 

如果類型具有相同的結構,你應該可能只是有一個,而不是兩種類型。否則,您將不得不將數據從第一種類型複製到另一種類型。例如: -

var t = ListCopy(objApps, x => new IndianAppStore_GetAllAppsByLanguage_ResultCache { 
    AppId = x.AppId, 
    AppName = x.AppName, 
    ... 
}); 

這變得乏味非常迅速,一個選擇是使用一個庫像AutoMapper的過程自動化。

相關問題