Я хочу получить данные и отобразить их отсортированными (дочерний элемент ниже его родителя).
Элементы данных определены следующим образом: ID |Название |Parent-ID
Что я делаю, сначала извлекаю все элементы, а затем сортирую.
Есть ли лучший способ сделать это с помощью linq?
protected void Page_Load(object sender, EventArgs e)
{
List<Category> list2 = new List<Category>();
ContModel modeltx = new ContModel();
var ret = modeltx.Categories.ToList();
GetCategoryList(0, 0, ret, list2);
string str="";
foreach (Category cat in list2)
{
str=str+cat.Title+"\n";
TextBox1.Text = str;
}
}
private void GetCategoryList(int iCurID, int iDepth, List<Category> li, List<Category> newList)
{
Category tmp;
string strOffset = "";
foreach (Category cat in li)
{
if ((cat.ParentId) == iCurID)
{
for (int i = 1; i <= iDepth; i++)
strOffset = strOffset + "-";
strOffset = strOffset + cat.Title;
tmp = cat;
tmp.Title = strOffset;
newList.Add(tmp);
strOffset = "";
GetCategoryList(cat.CategoryID, iDepth + 1, li, newList);
}
}
}
Обновление:
Как быть, если размер данных огромен, и я хочу использовать подкачку?
Я не могу Page (.Skip(PageSize * PageIndex).Take(PageSize)
) перед сортировкой ...