C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
C# と VB.NET の入門サイト
Re[3]: 配列の最大値の求め方
(過去ログ 158 を表示中)
掲示板トップ
C# と VB.NET 入門
新規作成
利用方法/規約
トピック表示
ランキング
記事検索
過去ログ
[トピック内 5 記事 (1 - 5 表示)] <<
0
>>
■91743
/ inTopicNo.1)
配列の最大値の求め方
▼
■
□投稿者/ up
(1回)-(2019/07/28(Sun) 11:19:49)
分類:[.NET 全般]
https://www.adonetvb.com/Learning/MathMax.html
このページにある方法で、
一次元配列の最大値を簡単に求めることができます。
一方で、Point配列や二次元配列の場合には
この方法を使ってもエラーが出てしまいます。
こうした場合には、
普通にForループで地道に検索するしかないのでしょうか?
引用返信
編集キー/
編集
■91744
/ inTopicNo.2)
Re[1]: 配列の最大値の求め方
▲
▼
■
□投稿者/ Hongliang
(847回)-(2019/07/28(Sun) 13:25:30)
2019/07/28(Sun) 13:26:03 編集(投稿者)
数値型の二次元配列であれば、以下のようにできます。
' Dim arr(2,2) As Integer
Dim maxValue As Integer = DirectCast(arr, IEnumerable(Of Integer)).Max()
Point型については、(5, 1)と(1, 5)はどっちが大きいのか普遍的な判断基準がないので、[最も大きい]を表せません。
引用返信
編集キー/
編集
■91745
/ inTopicNo.3)
Re[2]: 配列の最大値の求め方
▲
▼
■
□投稿者/ up
(2回)-(2019/07/28(Sun) 17:09:02)
ありがとうございます。
Pointに関してですが
XだけYだけでそれぞれ最大値を求めることってできませんか?
引用返信
編集キー/
編集
■91746
/ inTopicNo.4)
Re[3]: 配列の最大値の求め方
▲
▼
■
□投稿者/ KOZ
(11回)-(2019/07/28(Sun) 17:47:51)
■
No91745
(up さん) に返信
> Pointに関してですが
> XだけYだけでそれぞれ最大値を求めることってできませんか?
Dim points As Point() = New Point() {New Point(1, 2), New Point(3, 4), New Point(5, 6)}
Dim xMax As Integer = points.Max(Function(p) As Integer
Return p.X
End Function)
Dim yMax As Integer = points.Max(Function(p) As Integer
Return p.Y
End Function)
引用返信
編集キー/
編集
■91747
/ inTopicNo.5)
Re[3]: 配列の最大値の求め方
▲
▼
■
□投稿者/ Hongliang
(848回)-(2019/07/28(Sun) 17:50:05)
いくつか方法はありますが、[Xが最も大きいPoint]ではなくて[単純に一番大きいX]であれば、例えば以下のようなコードを書けます。
' Dim arr() As Point
Dim xMax As Integer = arr.Max(Function(pt) pt.X)
コード中のFunction記法については、[ラムダ式 VB]で検索してみてください。
引用返信
編集キー/
編集
トピック内ページ移動 / <<
0
>>
このトピックに書きこむ
過去ログには書き込み不可
管理者用
-
Child Tree
-