2017-04-24 31 views
-1

我有這樣的LINQ選擇:如何在LINQ .select中選擇整數的最後一位數字?

var extendedPhrases = phrases 
      .Select(x => new ExtendedPhrase() 
      { 
       Ajlpt = x.Ajlpt, 
       Bjlpt = x.Bjlpt, 
       Created = x.Created // an int? 
      }); 

如果我定義:

public int? CreatedLast { get; set; } 

那我怎麼才能填充,隨着x.Created的最後一位數字?

+0

不是真的LINQ。 – Orangesandlemons

+1

你的意思是'x.Created%10'? – DavidG

+0

答案不是真的LINQ特定的。 http://stackoverflow.com/questions/15731716/how-to-get-the-last-digit-of-a-number – CodingIntrigue

回答

5

如果您正在尋找Created財產最後一位,使用% operator這樣的:

var extendedPhrases = phrases 
     .Select(x => new ExtendedPhrase() 
     { 
      Ajlpt = x.Ajlpt, 
      Bjlpt = x.Bjlpt, 
      Created = x.Created, 
      CreatedLast = x.Created % 10 
     }); 
-1

第一種方式浮現在腦海中是調用的ToString()最後():

var extendedPhrases = phrases 
     .Select(x => new ExtendedPhrase() 
     { 
      Ajlpt = x.Ajlpt, 
      Bjlpt = x.Bjlpt, 
      Created = x.Created, 
      CreatedLast = x.Created?.ToString().Last() 
     }); 

如果您沒有使用最新的閃亮的C#,然後空保護可以用做:

var extendedPhrases = phrases 
     .Select(x => new ExtendedPhrase() 
     { 
      Ajlpt = x.Ajlpt, 
      Bjlpt = x.Bjlpt, 
      Created = x.Created, 
      CreatedLast = x.Created.HasValue ? x.Created.ToString().Last() : null 
     }); 

還有一些轉換回int?作爲練習給讀者。

+0

and don'如果需要,請忘記將其重新設置爲int – Orangesandlemons

+0

也許你應該在你的回答中說明你對'x'和'ExtendedPhrase.Created'類型做出的假設。你似乎認爲'x.Created'是某種'可空的'。爲什麼?此外,您似乎認爲「ExtendedPhrase.Created」是一個「可空的」。爲什麼? - 長話短說,你試圖回答一個缺少關鍵信息的問題(即涉及的類型)。 – stakx

+0

@CodingIntrigue謝謝,現在糾正了。 –

相關問題