セで始まりスで終わる文字列を判別する・LINQ編 §
文字列の配列の中に、セで始まりスで終わる文字列があるといいます。
それを判別したいとします。
どうすれば良いのでしょうか。
今回はLINQを使ってやってみましょう。
やり方は簡単です。
LINQのFirstメソッドとLastメソッドは文字列に対して使うと最初の文字と最後の文字を返してくれます。文字列の長さが0の場合は例外が起きてしまうので、FirstOrDefaultメソッドとLastOrDefaultメソッドを使うとより安全です。これらのメソッドは目的の文字が無い時は例外を出さずに'\0'を返してくれます。
罠の数々 §
- ソースの先頭にusing System.Linq;を忘れてはいけない。LINQを使うならこれはほぼ必須。
参考リンク §
Enumerable.First メソッド
Enumerable.Last メソッド
Enumerable.FirstOrDefault メソッド
Enumerable.LastOrDefault メソッド
OrDefaultが名前に付いている場合と付いていない場合は結局何が違うのか。上記リンクから確認してみよう。
リポジトリ §
https://github.com/autumn009/cshowto
FirstLast §
using System;
using System.Linq;
class Program
{
static void Main()
{
string[] ar = {
"クラウド","セフィロス","ティファ","エアリス","バレット"
};
foreach (var item in ar)
{
if (item.FirstOrDefault()== 'セ' && item.LastOrDefault()=='ス') Console.WriteLine(item);
}
}
}
実行結果
セフィロス