在平時的開發中,我們從數據庫中得到List列表,但是我們希望可以根據屬性名稱再次進行分類。
其實LINQ中已經內置相應的算法。
長話短說,直接上代碼:
var dataList = JsonHelper.DeserializeJsonToList<BaseSubGameTaxGrowthTrend>(JsonHelper.SerializeObject(dataTable));
dataList.GroupBy(x => x.KindName).Select(x => new SubGameTaxGrowthTrend { KindName = x.Key,ListData = x.ToList() }).ToList();
其中,BaseSubGameTaxGrowthTrend類如下:
public class BaseSubGameTaxGrowthTrend
{
public string KindName { set; get; }
public double Revenue { set; get; }
public DateTime ConcludeTime { set; get; }
}
SubGameTaxGrowthTrend 類就是我們最后想要得到的效果類。
public class SubGameTaxGrowthTrend
{
public string KindName { set; get; }
public List<BaseSubGameTaxGrowthTrend> ListData { get; set; }
}
補充:有時候我們在得到數據后,只想篩選除不一樣的屬性字段。例如只想篩選出所有不一樣的時間。
var dataList = JsonHelper.DeserializeJsonToList<BaseSubGameTaxGrowthTrend>(JsonHelper.SerializeObject(dataTable));
var timeList = dataList.Where((x, i) => dataList.FindIndex(z => z.ConcludeTime == x.ConcludeTime) == i).ToList();
