以下の内容はhttps://bluebirdofoz.hatenablog.com/entry/2024/07/01/232055より取得しました。


C#でSkipWhileを使ってリストから特定のデータ以降のリストを抽出する

本日はC#の小ネタ枠です。
C#でSkipWhileを使ってリストから特定のデータ以降のリストを抽出する手順です。

Enumerable.SkipWhile

Enumerable.SkipWhileメソッドはIEnumerable型から指定された条件が満たされる要素以降のIEnumerableを抽出します。
learn.microsoft.com

int[] amounts = { 0, 5, 10, 15, 20 };

// 10以上の数値が出てくる要素以降のIEnumerableを抽出する
int[] query = amounts.SkipWhile(amount => amount >= 10);

サンプルスクリプト

SkipWhileメソッドを使って指定の名前が出てきた以降のリストを抽出するサンプルスクリプトを作成しました。
・SkipWhileTest.cs

using System;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;

public class SkipWhileTest : MonoBehaviour
{
    [Serializable]
    private class IdentifyData
    {
        public int id;
        public string name;
    }
    
    void Start()
    {
        List<IdentifyData> dataList = new List<IdentifyData>
        {
            new IdentifyData { id = 0, name = "Zero" },
            new IdentifyData { id = 1, name = "One" },
            new IdentifyData { id = 2, name = "Two" },
            new IdentifyData { id = 3, name = "Three" },
            new IdentifyData { id = 4, name = "Four" },
            new IdentifyData { id = 5, name = "Five" },
            new IdentifyData { id = 6, name = "Six" },
            new IdentifyData { id = 7, name = "Seven" },
            new IdentifyData { id = 8, name = "Eight" },
            new IdentifyData { id = 9, name = "Nine" },
        };
        
        // Fiveという名前のデータが出てくるまでスキップする
        var skipDataList = dataList.SkipWhile(data => data.name != "Five");
        
        // 抽出したデータを表示
        foreach(var data in skipDataList)
        {
            Debug.Log($"id: {data.id}, name: {data.name}");
        }
    }
}

以下の通り、指定の名前が出てきた以降のリストを抽出できました。




以上の内容はhttps://bluebirdofoz.hatenablog.com/entry/2024/07/01/232055より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14