参考サイト様
差し替え・Minで目的の値に最も近い値を選ぶ 【▲→川俣晶の縁側→技術関連執筆情報→『【省エネ対応】 C#プログラムの効率的な書き方 LINQ to Objects マニアックス』読者サポート】
ソースコード
using System; using System.Collections.Generic; using System.Linq; public static class IEnumerableExtensions { /// <summary> /// 目的の値に最も近い値を返します /// </summary> public static int Nearest( this IEnumerable<int> self, int target ) { var min = self.Min( c => Math.Abs( c - target ) ); return self.First( c => Math.Abs( c - target ) == min ); } }
使い方
var list = new [] { 1, 2, 4, 8, 16 }; Debug.Log( list.Nearest( 10 ) ); // 8