Wie man strings Vergleichen in Linq-Abfrage

CompareTo ist nicht hier arbeiten für mich.

Meine linq-Abfrage ist

var result = from c in customers 
             where c.CustomerID.CompareTo(txtSerchId.Text) >= 0 
             select` c;

- und em immer eine Ausnahme

//////AUSNAHME///////////

System.ArgumentException was caught
Message=Value does not fall within the expected range.

Mein code ist so etwas wie das

var result = 
    from c in customers 
    where c.CustomerID.CompareTo(txtSerchId.Text) >= 0 
    select c;

if (result != null)
{
    IEnumerator<Customer> resultEnum = result.GetEnumerator();
    while (resultEnum.MoveNext())
    {
        Customer c = (Customer)resultEnum.Current;
        addToDataSet(Guid.NewGuid().ToString(), c);
    }
    ShowResult();
}
else
{
    MessageBox.Show("No Customer found within criteria");
}

Ausnahme ist in dieser Zeile

IEnumerator<Customer> resultEnum = result.GetEnumerator();
was ist der Wert, der in txtSerchId.Text und was ist die erwartete Ausgabe? Sie vergleichen CustomerID auf einen beliebigen string????
txtSerchId ist TextFeild(WindowForm Contorl) ich bin Vergleich der vom Benutzer eingegebenen Wert auf die Sammlung von Objekten, die ich habe, die Suche der Kunden mit den IDs von weniger als oder können Sie sagen, größer als die vom Benutzer eingegeben werden.
und es ist Text ist? Und welchen Sinn hat es, zu vergleichen, dieser text ist ein CustomerID? Vielleicht bin ich einfach nicht verstehen, Ihre geschäftlichen Anforderungen.
if (result != null) ist nie null. Sollten Sie verwenden result.Any() um zu überprüfen, ob die Sequenz enthält keine Elemente.
yess! es ist der text, auch wenn some1 geben einige numerische in textfeild, Textfeild die Text-Eigenschaft zu manipulieren, dass als text.

InformationsquelleAutor MBasit | 2012-05-04

Schreibe einen Kommentar