簡體   English   中英

Linq Select Substring WHERE VALUE of Column 有 1

[英]Linq Select Substring WHERE VALUE of Column has 1

我這里有日程表,然后我想將此表選擇為具有此結果的行

Code    Days
CS1     MT           AS Monday and Tuesday
CS2     WTH          AS Wednesday and Tuesday
ENG1    MWF          AS Monday, Wednesday and Friday
ENG1    SAT1         AS Saturday 1

我在 LINQ 查詢上試過這個,然后我的結果是這樣的

在此處輸入圖片說明

使用 LINQ

from a in Schedules
select new 
{
    a.ScheduleID,
    a.ScCode,
    Days = a.Mon == 1 ? "M" : a.Tue == 1 ? "T" : a.Wed == 1 ? "W" : a.Thu == 1 ? "TH" : a.Fri == 1 ? "F" : a.Sat == 1 ? "SAT" : a.Sun == 1 ? "SUN" : "NO SCHEDULE"
}

這沒有給出我預期的結果。

有沒有人有這個想法? 我在這里准備了材料http://sqlfiddle.com/#!3/5ef5d/1

謝謝。

雖然我部分同意 @shoe 的觀點,因為設計很可能是問題的最大部分,但我也相信在人們所處的位置與他們見面並幫助他們。 話雖如此,這是您的答案:

from a in Schedules
select new
{
    a.ScheduleID,
    a.ScCode,
    Days = GetDays(a)
};

您正在尋找的是以下方法:

private string GetDays(Schedule schedule)
{
    var stringBuilder = new StringBuilder();

    if (schedule.Mon == 1)
    {
        stringBuilder.Append("M");
    }

    if (schedule.Tue == 1)
    {
        stringBuilder.Append("T");
    }

    if (schedule.Wed == 1)
    {
        stringBuilder.Append("W");
    }

    if (schedule.Thu == 1)
    {
        stringBuilder.Append("TH");
    }

    if (schedule.Fri == 1)
    {
        stringBuilder.Append("F");
    }

    if (schedule.Sat == 1)
    {
        stringBuilder.Append("SAT");
    }

    if (schedule.Sun == 1)
    {
        stringBuilder.Append("SUN");
    }

    if (schedule.Mon1 == 1)
    {
        stringBuilder.Append("M1");
    }

    if (schedule.Tue1 == 1)
    {
        stringBuilder.Append("T1");
    }

    if (schedule.Wed1 == 1)
    {
        stringBuilder.Append("W1");
    }

    if (schedule.Thu1 == 1)
    {
        stringBuilder.Append("TH1");
    }

    if (schedule.Fri1 == 1)
    {
        stringBuilder.Append("F1");
    }

    if (schedule.Sat1 == 1)
    {
        stringBuilder.Append("SAT1");
    }

    if (schedule.Sun1 == 1)
    {
        stringBuilder.Append("SUN1");
    }

    if (stringBuilder.Length == 0)
    {
        stringBuilder.Append("NO SCHEDULE");
    }

    return stringBuilder.ToString();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM