c#中变量内部的字符串分割
本文关键字:字符串 分割 内部 变量 | 更新日期: 2023-09-27 18:16:12
我将尽量简化这个问题,因为我的问题相当复杂(或者我认为是这样!!)
目前,我有一个变量绑定到一个中继器,它列出了业务中各种员工的一组配置文件。
在变量中,我有一个字段"Job_Title",其中包含他们工作的部门和由'/'分隔的职位名称。我想要实现的是根据"Job_Title"字符串中的扇区分配一组DIV类。
现在我可以通过执行以下命令在单个配置文件上实现这一点
DT_Control_Profile Pro =
db.DT_Control_Profiles
.SingleOrDefault(x => x.PageControlID == PageControl_ID);
if (Pro != null)
{
String[] cutsector = Pro.Job_Title.Split('/');
foreach (string s in cutsector)
{
if (s.Trim().ToUpper() == "WELL ENGINEERING")
{
DIV_SECOTR.Attributes.Add("class", "sectorcon conwelleng");
}
else if (s.Trim().ToUpper() == "RESEVOIR ENGINEERING")
{
DIV_SECOTR.Attributes.Add("class", "sectorcon conreseng");
}
else if (s.Trim().ToUpper() == "GEO SCIENCES")
{
DIV_SECOTR.Attributes.Add("class", "sectorcon congeoscie");
}
else if (s.Trim().ToUpper() == "FACILITES ENGINEERING")
{
DIV_SECOTR.Attributes.Add("class", "sectorcon confacilieng");
}
};
然而,我正在努力用一个变量来实现这一目标,它将多个配置文件拉到一个页面上!
到目前为止,我有这个:
var leaders = from x in db.DT_Control_Profiles
where x.FeatureProfile == true
&& x.DT_PageControl.DT_SitePage.VennID == codesnippets.VennID
select new
{
img = Path + x.ImageUrl,
x.Job_Title,
x.Name,
about = codesnippets.StringSize(x.Biography, 100),
link = "~/" + x.DT_PageControl.DT_SitePage.PageName,
};
我认为解决方案在于foreach循环,但我不知道从哪里开始!
谁能给我指个正确的方向?应该能够在linq查询中调用函数。创建如下函数:
public static string GetHtmlClass(DT_Control_Profile Pro)
{
String result = "";
String[] cutsector = Pro.Job_Title.Split('/');
foreach (string s in cutsector)
{
if (s.Trim().ToUpper() == "WELL ENGINEERING")
{
result += "sectorcon conwelleng ";
}
else if (s.Trim().ToUpper() == "RESEVOIR ENGINEERING")
{
result += "sectorcon conreseng ";
}
else if (s.Trim().ToUpper() == "GEO SCIENCES")
{
result += "sectorcon congeoscie ";
}
else if (s.Trim().ToUpper() == "FACILITES ENGINEERING")
{
result += "sectorcon confacilieng ";
}
}
}
之后,你的查询应该像这样工作:
var leaders = from x in db.DT_Control_Profiles
where x.FeatureProfile == true
&& x.DT_PageControl.DT_SitePage.VennID == codesnippets.VennID
select new
{
img = Path + x.ImageUrl,
x.Job_Title,
x.Name,
about = codesnippets.StringSize(x.Biography, 100),
link = "~/" + x.DT_PageControl.DT_SitePage.PageName,
class = GetHtmlClass(x)
};
对于初学者,我将您的扇区->类映射放在键值对字典http://msdn.microsoft.com/en-us/library/xfhwa508.aspx中这只是做同样事情的一种更干净、更好的方式。
我不确定你在哪里试图存储类属性,你可以运行一个foreach对leader集合和查找从你的字典,并附加它,或者你可以有查找在显示点。
编辑:正如AVee所说,您可以在linq语句中进行查找,如果您只希望职位名称显示部门,只选择div类,我可能会选择