私のコードは以下の通りです。配列Aの最初の値がAの他のすべての値と同じ場合は、いくつかの大きなif文をタイプすることでそれを行うことができますが、私はむしろそれをしません。配列内のすべての値が同じであるかどうかを調べる - Visual Basic
Public Function Areas_Of_England_Checker()
Dim South_East() As System.Drawing.Color = {Oxfordshire.BackColor, Buckinhamshire.BackColor, Berkshire.BackColor, Hampshire.BackColor, Isle_Of_White.BackColor, West_Sussex.BackColor, Kent.BackColor, Surrey.BackColor, London.BackColor}
Dim South_West() As System.Drawing.Color = {Devon.BackColor, Cornwall.BackColor, Somerset.BackColor, Whiltshire.BackColor, Gloucestershire.BackColor, Dorset.BackColor}
Dim East_Anglia() As System.Drawing.Color = {Hertfordshire.BackColor, Bedfordshire.BackColor, Cambridgeshire.BackColor, Essex.BackColor, Suffolk.BackColor, Norfolk.BackColor, Northamptonshire.BackColor}
Dim East_Midlands() As System.Drawing.Color = {Lincolnshire.BackColor, Nottinghamshire.BackColor, Leicestershire.BackColor, Derbyshire.BackColor}
Dim West_Midlands() As System.Drawing.Color = {Shropshire.BackColor, Staffordshire.BackColor, Herefordshire.BackColor, Worcestershire.BackColor, Warwickshire.BackColor, Cheshire.BackColor}
Dim North_West() As System.Drawing.Color = {Manchester.BackColor, Merseyside.BackColor, Lancashire.BackColor, Cumbria.BackColor}
Dim Yorkshire() As System.Drawing.Color = {North_Yorkshire.BackColor, West_Yorkshire.BackColor, South_Yorkshire.BackColor, East_Yorkshire.BackColor}
Dim North_East() As System.Drawing.Color = {Northumberland.BackColor, County_Durham.BackColor}
quicker(South_East, 9)
quicker(South_West, 6)
quicker(East_Anglia, 7)
quicker(East_Midlands, 6)
quicker(North_West, 4)
quicker(Yorkshire, 4)
quicker(North_East, 2)
End Function
Public Sub quicker(A As Array, B As Integer)
If A(0) Is the same as any value in A Then ' sort-of pseudo-code
resupplytroops += B
End If
End Sub
まず、これはVBAではなく、VB.NETです.2つの全く異なる言語です。次に、配列の代わりに 'HashSet 'を使用してください。それで '.Contains'を呼び出すことができます。 –
Comintern
@Comintern、あなたはポイントを逃している、彼は知っていることを知りたくない..彼はすべての同じ値を知りたい。 –
@Trevor - 「ポイント」は、配列がこのための適切なコンテナではないということです。 LinqはVB.NETで苦しいですが、同等のC#コードは次のようになります: 'a.Count == b.Count && a.All(x => b.Contains(x));' – Comintern