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循环,但我不知道从哪里开始!

谁能给我指个正确的方向?

c#中变量内部的字符串分割

应该能够在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类,我可能会选择