SMS メッセージの長さを取得し、メッセージがいくつの部分になるかを教えてくれる SQL のコードがあります。
メッセージ <= 160 文字は一部です。
160 文字を超えるメッセージはマルチパート メッセージになり、各パートには 152 文字が含まれます。誰かがC#で次のようなことを達成するための適切なアルゴリズムを理解するのを手伝ってくれませんか(ラムダ式とlinq式は大歓迎です):
select
(case
when (LEN(Message)<=160) then 1
when (LEN(Message)>160 and LEN(Message)<305) then 2
when (LEN(Message)>304 and LEN(Message)<457) then 3
when (LEN(Message)>456 and LEN(Message)<609) then 4
when (LEN(Message)>608 and LEN(Message)<761) then 5
when (LEN(Message)>760 and LEN(Message)<913) then 6
when (LEN(Message)>912 and LEN(Message)<1065) then 7
when (LEN(Message)>1064 and LEN(Message)<1217) then 8
when (LEN(Message)>1216 and LEN(Message)<1369) then 9
when (LEN(Message)>1368 and LEN(Message)<1521) then 10
else 'n'
end) as [Msg Parts]
from tblAuditLog