Kann nicht implizit konvertiert Typ 'string' in 'System.Sammlungen.Generisches.Liste<string>'
Diese Frage hat sich wohl beantwortet worden, Hunderte Male, aber hier geht.
Habe ich dieses chunck code:
private void PopulateStringDropdownList(List<ObjectInfo> listObject,
object selectedType = null)
{
List<string> listString = listObject.OrderBy(x => x.m_Type).ToString();
for (int i = 0; i < listString .Count; i++)
{
for (int j = i + 1; j < listString .Count; j++)
{
if (String.Equals(listString [i], listString [j]))
{
listString.RemoveAt(j);
}
}
}
ViewBag.property1 = new SelectList(listString );
}
Also im Grunde ich versuche, füllen Sie eine dropdown-Liste mit strings kommen aus einer Eigenschaft der einzelnen Objekte in der Liste, die ich-pass-in-parameter.
Aber der code kann nicht kompiliert werden, weil die Fehler, die Sie sehen dort oben, und ich habe noch zu verstehen, warum genau. Jede Hilfe, anyone?
- Die Linie versagt? (Und bitte nehmen Sie sich die Zeit, um formatieren Sie den code selbst für die Zukunft questoins.)
- Verwenden ToList() anstelle von ToString().
- listString ist nie benutzt. Und versuchen Sie, entfernen von doppelten Saiten in listObject?
- Den gleichen Fehler zeigt, wenn ich mit ToList().
- Wo ist der Fehler???
- Die erste Zeile, wenn Sie scheitern. Sorry für die Formatierung, ich versuche immer noch herauszufinden, wie das hier funktioniert ^^
- Sorry, ich habe geschrieben das mein code wieder, so dass es richtig sein kann.
- Come on, Leute. Er hat 11 Ruf. Lassen wir ihn zu gewöhnen, sich SO vor downvoting :P.
- derselbe Fehler, wenn ich ToList()" -
ToList()
in dieser position gibt einList<ObjectInfo>
, nicht einList<string>
. Also, ich nehme an, die Fehlermeldung ist nicht genau das gleiche. Bitte genaue Fehlermeldungen. - Danke Brian 🙂
- Meinst du das wirklich listObject.RemoveAt(j) statt listString.RemoveAt(t)?
- Nur darauf hinweisen: @FishBasketGordo schrieb etwas, das mir geholfen unten. 🙂
- NÖ! NÖ! Korrigiert, dass man auch. Hahaha, danke für den Hinweis: in der Tat, ich habe nur geschrieben, eine chunck von code, der nicht die "echten" code, das ist, warum es so viele "Tippfehler" um. Vielen Dank!
InformationsquelleAutor hsim | 2013-02-01
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist die problematische Zeile:
ToString
gibt einen string zurück, und Sie versuchen zu ordnen, um eineList<string>
variable.Müssen Sie etwas tun, wie dieses:
Diese Anweisung, um Ihre
listObject
Durchlaufen werden, um die Reihenfolge, die Sie möchten, dann konvertieren Sie die Werte in strings um, und schließlich konvertieren Durchlaufen werden, um eineList<string>
.Blick auf diese code:
Der rechten Seite Ausdruck ruft
ToString()
auf das ErgebnisOrderBy
- das ist nicht hilfreich, sich selbst, und resultiert in einemstring
.Bist du dann versuchen zu ordnen, dass
string
Ausdruck, um eine neue variable vom TypList<string>
. Das ist nicht zur Arbeit gehen.Ich vermuten Sie wollen einfach nur
ToList
stattToString
:m_Type
Feld? (Bitte genauer zu sein in der Zukunft.)Ich denke, Sie wollen
ToList
stattToString
.Auch, wenn alles, was Sie versuchen zu tun ist, entfernen Sie Duplikate, können Sie einfach mit LINQ und tun Sie dies:
Vereinfachen Sie alle Ihre code-in:
Gab es noch ein bisschen Korrektur gemacht werden. Hier ist der komplette code:
Dass Weg der richtige Wert gefunden ist der string, der den Typ und nicht der Typ des Objekts.
Danke an alle für Eure Hilfe!
Konvertieren Liste der
int
zur Liste derstring
: