C#でリスト内のすべての文字列から最初の3文字を取得する方法
この記事では、C#を使ってリストに格納されたすべての文字列から、先頭の3文字を抽出する方法を解説します。LINQのSelectメソッドとSubstringメソッドを組み合わせることで、簡潔に実装できます。
文字列リストの準備
まず、処理対象となる文字列をListに格納します。ここでは、以下のようなリストを用意しました。
List<object> list = new List<object> { "keyboard", "mouse", "joystick", "monitor" };
SubstringとLINQ Selectで先頭3文字を取得する
各文字列の先頭3文字を取り出すには、Substringメソッドを使用します。さらに、リストの全要素に対して一括処理を行うため、LINQのSelectメソッドと組み合わせます。
IEnumerable<string> res = list.AsQueryable()
.Cast<string>()
.Select(str => str.Substring(0, 3));
Substring(0, 3)は「インデックス0(先頭)から3文字分を切り出す」という意味です。また、Cast<string>()は、object型として宣言されたリストをstring型に変換するために使用しています。
サンプルコード全体
using System;
using System.Linq;
using System.Collections.Generic;
class Demo {
static void Main() {
List<object> list = new List<object> { "keyboard", "mouse", "joystick", "monitor" };
// 各文字列から最初の3文字を取得
IEnumerable<string> res = list.AsQueryable()
.Cast<string>()
.Select(str => str.Substring(0, 3));
foreach (string str in res) {
Console.WriteLine(str);
}
}
}
実行結果
key mou joy mon
このように、LINQのSelectとSubstringを組み合わせれば、リスト内のすべての文字列から先頭の任意の文字数を簡単に抽出できます。なお、元の文字列が3文字未満の場合、Substring(0, 3)はArgumentOutOfRangeExceptionをスローするため、実際の開発では文字列長のチェックを追加しておくと安全です。
-
Pythonでリストから一意の値(重複しない要素)を抽出する3つの方法
Pythonのリストは、[](角括弧)の中に複数の要素を格納できるデータ構造です。異なるデータ型を混在させることもでき、重複した値を含むこともあります。本記事では、リストから重複を除いた一意の値だけを取り出す方法を、代表的な3つのアプローチに分けて解説します。方法1:append() と not in を使う方法まず空の新しいリストを作成し、元のリストの要素を1つずつ確認しながら、まだ新しいリストに存在しない場合のみ追加していく方法です。forループと not in 条件を組み合わせることで、要素の存在チェックを行い、未登録の要素だけを追加できます。コード例def catch_unique(l
-
Pythonでリストから最初の空でない文字列を取得する方法
文字列のリストが与えられたとき、その中から最初の空でない(非空)要素を取得したいケースはよくあります。課題となるのは、リストの先頭に空文字列が1つ、2つ、あるいはそれ以上連続して存在している可能性がある点です。ここでは、そうした状況でも動的に最初の空でない文字列を見つけ出す方法を2つ紹介します。 next()関数を使う方法 next()関数をジェネレータ式と組み合わせると、現在の要素が空の場合に自動的に次の要素へと処理を進められます。条件if subにより空文字列はスキップされ、最初に真と評価された要素が返されます。 サンプルコード listA = [, top, pot, hot, , s