Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在MVC 3中向已填充列表的第一个索引插入项?_C#_Asp.net Mvc 3_List - Fatal编程技术网

C# 如何在MVC 3中向已填充列表的第一个索引插入项?

C# 如何在MVC 3中向已填充列表的第一个索引插入项?,c#,asp.net-mvc-3,list,C#,Asp.net Mvc 3,List,我有一个清单,由我填写并排序!我想在排序后的列表中添加一些新项目,但是这些新项目应该在列表的顶部 我正在将项目添加到列表中: var OnlySup = dataContext.GroupDetails.Where(c => c.sup_id == c.suppliers.supplier_id).Select(c=>c.sup_id).Distinct().ToList(); /* GET SUPPLIERS FROM DB */ foreach (var supp in Onl

我有一个清单,由我填写并排序!我想在排序后的列表中添加一些新项目,但是这些新项目应该在列表的顶部

我正在将项目添加到列表中:

var OnlySup = dataContext.GroupDetails.Where(c => c.sup_id == c.suppliers.supplier_id).Select(c=>c.sup_id).Distinct().ToList();

/* GET SUPPLIERS FROM DB */
foreach (var supp in OnlySup)
{
    /* ADD EACH SUPPLIER TO LIST */
    SupplierList.Add(new SelectListItem() { Text = supp.supplier, Value = "S" + supp.supplier_id.ToString() });
}
/* ReOrder The List */
SupplierList = SupplierList.OrderBy(c => c.Text).ToList();
/* DEFAULT ADD */
SupplierList.Add(new SelectListItem() { Text = "ALL Groups", Value = "G" });
SupplierList.Add(new SelectListItem() { Text = "ALL Suppliers", Value = "S" });
SupplierList.Add(new SelectListItem() { Text = "ALL Suppliers AND Groups", Value = "%" });

/* GET GROUPS FROM DB */
var OnlyGroup = dataContext.groups.OrderBy(c => c.id).Distinct().ToList();

/* FOR EACH GROUP */
foreach (var groups in OnlyGroup)
{
    /* ADD EACH GROUP TO LIST */
    SupplierList.Add(new SelectListItem() { Text = groups.group_name, Value = "G" + groups.id.ToString() });
}
排序:

var OnlySup = dataContext.GroupDetails.Where(c => c.sup_id == c.suppliers.supplier_id).Select(c=>c.sup_id).Distinct().ToList();

/* GET SUPPLIERS FROM DB */
foreach (var supp in OnlySup)
{
    /* ADD EACH SUPPLIER TO LIST */
    SupplierList.Add(new SelectListItem() { Text = supp.supplier, Value = "S" + supp.supplier_id.ToString() });
}
/* ReOrder The List */
SupplierList = SupplierList.OrderBy(c => c.Text).ToList();
/* DEFAULT ADD */
SupplierList.Add(new SelectListItem() { Text = "ALL Groups", Value = "G" });
SupplierList.Add(new SelectListItem() { Text = "ALL Suppliers", Value = "S" });
SupplierList.Add(new SelectListItem() { Text = "ALL Suppliers AND Groups", Value = "%" });

/* GET GROUPS FROM DB */
var OnlyGroup = dataContext.groups.OrderBy(c => c.id).Distinct().ToList();

/* FOR EACH GROUP */
foreach (var groups in OnlyGroup)
{
    /* ADD EACH GROUP TO LIST */
    SupplierList.Add(new SelectListItem() { Text = groups.group_name, Value = "G" + groups.id.ToString() });
}
列出我想添加到列表顶部的项目:

var OnlySup = dataContext.GroupDetails.Where(c => c.sup_id == c.suppliers.supplier_id).Select(c=>c.sup_id).Distinct().ToList();

/* GET SUPPLIERS FROM DB */
foreach (var supp in OnlySup)
{
    /* ADD EACH SUPPLIER TO LIST */
    SupplierList.Add(new SelectListItem() { Text = supp.supplier, Value = "S" + supp.supplier_id.ToString() });
}
/* ReOrder The List */
SupplierList = SupplierList.OrderBy(c => c.Text).ToList();
/* DEFAULT ADD */
SupplierList.Add(new SelectListItem() { Text = "ALL Groups", Value = "G" });
SupplierList.Add(new SelectListItem() { Text = "ALL Suppliers", Value = "S" });
SupplierList.Add(new SelectListItem() { Text = "ALL Suppliers AND Groups", Value = "%" });

/* GET GROUPS FROM DB */
var OnlyGroup = dataContext.groups.OrderBy(c => c.id).Distinct().ToList();

/* FOR EACH GROUP */
foreach (var groups in OnlyGroup)
{
    /* ADD EACH GROUP TO LIST */
    SupplierList.Add(new SelectListItem() { Text = groups.group_name, Value = "G" + groups.id.ToString() });
}

那么我如何才能做到这一点呢?

创建一个新列表,在开始时添加所需的项目,然后添加之前排序的其他项目。如果我没有完全误解你的话,我应该去工作

NewList.Add(the new ones)

foreach(var item in SupplierList){
NewList.Add(item);
}

创建一个新列表,在开始时添加所需的项目,然后添加先前排序的其他项目。如果我没有完全误解你的话,我应该去工作

NewList.Add(the new ones)

foreach(var item in SupplierList){
NewList.Add(item);
}

我想到的第一件事是准备一份包含所有这些项目的清单。 因此,您可以对新项目使用
MyList.Insert(0)
。 然后,我将生成类似以下内容的选择列表:

var select = new SelectLis(MyList, "Id", "Text", Model.SelectedValueId)

我想到的第一件事是准备一份包含所有这些项目的清单。 因此,您可以对新项目使用
MyList.Insert(0)
。 然后,我将生成类似以下内容的选择列表:

var select = new SelectLis(MyList, "Id", "Text", Model.SelectedValueId)

为什么不调用Insert方法?

为什么不调用Insert方法?

wauw只花了几分钟就得到了3个答案,恭喜大家!谢谢你的提醒,哇,只花了几分钟就有三个答案,恭喜大家!谢谢你的提醒。你很了解我,你的方法是值得的,但这将是一个更长的方法。谢谢。你很理解我,你的方法很有价值,但这是一个较长的方法。谢谢。为什么在使用insert之后还要重新生成列表?因为我读错了你的代码。我假设您正在尝试更新已编译的SelectList。因此,第一件事是从IList创建列表,这样您就可以调用“Insert”。之后,您从列表中生成selectlist,其中所有项目的顺序都正确。为什么在使用insert之后还要重新生成列表?因为我读错了您的代码。我假设您正在尝试更新已编译的SelectList。因此,第一件事是从IList创建列表,这样您就可以调用“Insert”。然后从列表中生成selectlist,并按正确顺序显示所有项目