我如何缩短以下代码? 我需要简短的方法: 我不想使用foreach循环,因为我有一个值。
public partial class Test : System.Web.UI.Page
{
StaffManagementEntities staffContext;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
LoadStaffPersonel();
}
}
void LoadStaffPersonel()
{
int selectedDepartman = Convert.ToInt32(Request.QueryString["SelectedDepartmanID"]);
string name="";
using (staffContext = new StaffManagementEntities())
{
var DepartmanName = from d in staffContext.Departman
where d.ID == selectedDepartman
select d;
foreach (Departman d in DepartmanName)
{
name = d.Name;
}
ObjectResult<StaffsPersonel> personalData = staffContext.GetPersonelData(name);
gvPersonel.DataSource = personalData;
gvPersonel.DataBind();
}
}
}
如何使用字符串值代替“var DepartmanName”
答案 0 :(得分:3)
类似的东西:
string name = (from d in staffContext.Departman
where d.ID == selectedDepartman
select d.Name).First();
或:
string name = staffContext.Departman.Where(d=>d.ID == selectedDepartman)
.First().Name;
答案 1 :(得分:1)
这是你想要做的吗?
string name = (from d in staffContext.Departman
where d.ID == selectedDepartman
select d.Name).SingleOrDefault();
SingleOrDefault 将返回名称,如果部门未退出,则返回null。
<强>更新强>
答案 2 :(得分:0)
您可以使用当前3.5框架中提供的“FirstOrDefault”。我认为它可能已包含在3.0中,但我不确定。我认为如果找不到该项,它将返回null(而不是空字符串)....但是你要仔细检查它。
string name =(来自staffContext.Departman中的d) 其中d.ID == selectedDepartman 选择d.Name).FirstOrDefault();