2020年03月23日

C# 配列を使って配列の要素を検索する

LINQの書き方について。
配列を使って配列の要素を検索するパターンについて書きました。
using System;
using System.Linq;

namespace MyApp
{
class Program
{
static void Main(string[] args)
{
// 関東地方リスト
string[] kantouRegion = { "東京都", "神奈川県", "埼玉県", "千葉県", "群馬県", "栃木県", "茨城県" };

// ユーザの出身地リスト
string[] userBirthplaceArray1 = { "東京都", "群馬県", "千葉県" };
string[] userBirthplaceArray2 = { "東京都", "愛知県", "大阪府" };
string[] userBirthplaceArray3 = { "北海道", "福岡県", "沖縄県" };

// 少なくとも1人のユーザの出身地が関東地方
Console.WriteLine(userBirthplaceArray1.Any(w => kantouRegion.Any(t => t == w))); // True
Console.WriteLine(userBirthplaceArray2.Any(w => kantouRegion.Any(t => t == w))); // True
Console.WriteLine(userBirthplaceArray3.Any(w => kantouRegion.Any(t => t == w))); // False
Console.WriteLine("");

// すべてのユーザの出身地が関東地方
Console.WriteLine(userBirthplaceArray1.All(w => kantouRegion.Any(t => t == w))); // True
Console.WriteLine(userBirthplaceArray2.All(w => kantouRegion.Any(t => t == w))); // False
Console.WriteLine(userBirthplaceArray3.All(w => kantouRegion.Any(t => t == w))); // False
Console.WriteLine("");

// 人名漢字リスト
string[] kanjiArray = { "山", "一", "郎" };

// ユーザの名前リスト
string[] userNameArray1 = { "山田一郎", "山崎一郎", "山寺一郎" };
string[] userNameArray2 = { "山田一郎", "岩崎公太", "後藤四太" };
string[] userNameArray3 = { "森田一介", "佐藤三太", "後藤四太" };

// 少なくとも1人のユーザの名前に、人名漢字リストにあるすべての漢字が使われている
Console.WriteLine(userNameArray1.Any(w => kanjiArray.All(t => w.Contains(t)))); // True
Console.WriteLine(userNameArray2.Any(w => kanjiArray.All(t => w.Contains(t)))); // True
Console.WriteLine(userNameArray3.Any(w => kanjiArray.All(t => w.Contains(t)))); // False
Console.WriteLine("");

// すべてのユーザ名前に、人名漢字リストにあるすべての漢字が使われている
Console.WriteLine(userNameArray1.All(w => kanjiArray.All(t => w.Contains(t)))); // True
Console.WriteLine(userNameArray2.All(w => kanjiArray.All(t => w.Contains(t)))); // False
Console.WriteLine(userNameArray3.All(w => kanjiArray.All(t => w.Contains(t)))); // False
}
}
}
タグ:C# LinQ
posted by Hiro at 23:26| Comment(0) | プログラム
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: