[VB2010] Mehrere Integer auf Gleichheit prüfen

Gast #4647704
Lesenswert?

Hallo Leute,

Ich habe das Problem, das ich mehrere Integerzahlen in VB2010 auf 
Gleichheit prüfen soll.
Das soll doch kein Problem sein.
Aber so funktioniert es nicht:

If not (a=b=c=d) then
  ... 'Nicht gleich
end if

Das kann doch nicht sein.

Hatte schonmal wer so ein Problem?

mfG
VblerOdaned
Gast #4647712
Lesenswert?

Habe es jetzt so gelöst:

    Function IsEqual(ByVal Int1 As Integer, ByVal Int2 As Integer, ByVal 
Int3 As Integer, ByVal Int4 As Integer) As Boolean
        If Int1 <> Int2 Then
            Return False
            Exit Function
        End If
        If Int1 <> Int3 Then
            Return False
            Exit Function
        End If
        If Int1 <> Int4 Then
            Return False
            Exit Function
        End If
        If Int2 <> Int3 Then
            Return False
            Exit Function
        End If
        If Int2 <> Int4 Then
            Return False
            Exit Function
        End If
        If Int3 <> Int4 Then
            Return False
            Exit Function
        End If
        Return True
    End Function



Aber das muss doch einfacher gehen !!!
#4647762
Lesenswert?

HI,
Pack deine Interger in einen Liste, in etwa so:
1
Public Class Form1
2
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
3
        Dim i As Integer = 10
4
        Dim list As New List(Of Integer)
5
        For j As Integer = 0 To 10
6
            list.Add(i)
7
        Next
8
        If AllEqual(list) Then
9
            MsgBox("Equal")
10
        Else
11
            MsgBox("Not Equal")
12
        End If
13
    End Sub
14

15
    Private Function AllEqual(ByVal x As List(Of Integer)) As Boolean
16
        Dim match As Integer = x(0)
17
        Dim res As List(Of Integer) = x.FindAll(Function(y) y = match)
18
        If res.Count = x.Count Then
19
            Return True
20
        End If
21
        Return False
22
    End Function
23
End Class

Gruß Robert
Gast #4647787
Lesenswert?

Peter II schrieb:
> weil man mit = nicht vergleicht?
>
> versuch es mal mit:
>
> If not (a==b==c==d) then
Wenn man keine Ahnung hat, einfach mal schlau machen oder ruhig sein ;)

https://msdn.microsoft.com/en-us/library/cey92b0t.aspx
https://msdn.microsoft.com/en-us/library/41d8z008.aspx
1
The = Operator (Visual Basic) is also used as an assignment operator.
2

3
...
4

5
The = operator is also used as a comparison operator. For details,
6
see Comparison Operators (Visual Basic).
Gast #4647792
Lesenswert?

Kaj schrieb:
> Wenn man keine Ahnung hat, einfach mal schlau machen oder ruhig sein ;)

aus dem Grund stand ein Fragezeichen da!

Aber selbst dann würde es nicht funktioniere, weil der vergleich Unsinn 
ist.

a = 3
b = 2
c = 0

if ( a = b = c ) ...

-> ( (3 = 2) = 0 ) ...
-> ( ( 0 ) = 0 )
-> true

blöd.
#4662376
Lesenswert?

Peter II schrieb:
> VblerOdaned schrieb:
>> If not (a=b=c=d) then
>>   ... 'Nicht gleich
>
> das dürfte sogar in C falsch sein.

Ganz sicher sogar, oder würdest Du not_ oder _then zu den 
C-Schlüsselwörtern zählen ;)

Vergleich mit einem '=' gibt es in C nicht, da ist das eine Zuweisung.

> a=b liefert 0 oder 1 zurück
> wenn jetzt c dann 0 oder 1 ist, denkst du das sie gleich sind.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren