Entwickler-Ecke
C# - Die Sprache - LINQ und mehrdimensionales Array
coolace - Di 08.11.11 20:17
Titel: LINQ und mehrdimensionales Array
Hy,
ich habe folgendes Problem und komm trotz googele und ein paar brauchbare Treffer nicht
dahinter wie ich folgendes Löse.
2 dimensionales Array
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| string[,] bilderarryzuordung;
public Bildauswahl(string name, string[,] bildernamenarry, string Pfadangabe) { bilderarryzuordung = bildernamenarry; }
private void comboBox1_TextChanged(object sender, EventArgs e) { var bildquery = from abfrage in bilderarryzuordung where abfrage = p1.Image.ToString() select abfrage; bilderarryzuordung[Convert.ToInt32(), 0] = namenauswahl[Convert.ToInt32(comboBox1.Items), 0]; } |
Ich bekomme immer in dem unteren Teil das Problem das der Compiler sagt:
Fehler 2 Es konnte keine Implementierung des Abfragemusters für den Quelltyp "string[*,*]" gefunden werden. "Where" wurde nicht gefunden. Möglicherweise fehlt ein Verweis auf "System.Core.dll" oder eine Using-Direktive für "System.Linq". C:\Dokumente und Einstellungen\Administrator\Desktop\Dateienumbennen\Dateienumbennen\Bildauswahl.cs 105 45 Dateienumbennen
Wie durchsucht man also ein mehrdimensionaliges Array um die Position festzustellen ?
Gruß
Erlborland
Moderiert von
Christian S.: Code- durch C#-Tags ersetzt
Kha - Di 08.11.11 20:56
Direkt jedenfalls gar nicht. Überlege dir mal, wie man eine Methode
C#-Quelltext
1:
| static IEnumerable<T> Flatten<T>(T[,] a) |
implementieren könnte.
coolace - Di 08.11.11 22:31
Danke schon mal für den Typ, er kann meine Liste nicht durchsuchen
weil Sie nicht IEnumerable ist.
Aber ich glaub ich steh auf dem Schlauch aber mir fällt gerade keine passende
Möglichkeit an diese zu implementieren, das funzt irgendwie nicht
C#-Quelltext
1: 2:
| IEnumerable<string[,]> bildquery = bilderarryzuordung[,] from abfrage in bilderarryzuordung where abfrage = p1.Image.ToString() select abfrage; |
Gruß
coolace
Moderiert von
Christian S.: Code- durch C#-Tags ersetzt
Christian S. - Di 08.11.11 22:53
coolace hat folgendes geschrieben : |
Aber ich glaub ich steh auf dem Schlauch |
Besimmt sogar! 130 Postings und markierst Deinen Quelltext immer noch nicht als
C#-Quelltext :mrgreen:
Th69 - Mi 09.11.11 10:56
Hallo coolace,
folgender Code compiliert zumindestens:
C#-Quelltext
1: 2: 3:
| string[,] bilderarrayzuordnung = new string[2, 3] { { "x", "y", "z" }, { "a", "b", "x" } }; var bildquery = from string abfrage in bilderarrayzuordnung where abfrage == "x" select abfrage; var list = bildquery.ToList(); |
Beachte die explizite Angabe des Datentyps 'string' in der from-Klausel.
Jedoch scheint m.E. diese Linq-Abfrage bei dir sowieso der falsche Ansatz zu sein, denn du möchtest ja anscheinend den Eintrag in dem Array dann ersetzen (d.h. du benötigst den Index - bisher kriegst du aber einfach nur eine Liste der Strings zurück).
Ligatur - Do 10.11.11 00:40
Hallo,
Vergleiche mal
C#-Quelltext
1:
| where abfrage = p1.Image.ToString() |
mit
Fällt was auf?
pdelvo - Do 10.11.11 01:00
So ein Zufall. Vor etwa 20mins gebraucht
C#-Quelltext
1: 2: 3: 4:
| Zieltyp[,] = ...;
from x in arr.Cast<Zieltyp>() where IsAnswer(42)... |
coolace - Do 10.11.11 22:01
Hallo,
sorry für die späte Rückantwort, war ein bissel Krank geworden.
@Christian S: Vielen Dank für den Hinweis, ich werde mich natürlich
an die BoardRegeln halten und das ganze mit code und /code entsprechend
markieren.
@Rest: Vielen Dank, es stimmt er kompiliert.
Ich hoffe nun, über die List die Position herauszubekommen.
Was ich noch nicht ganz kapiert habe ist das hier ?
C#-Quelltext
1:
| static IEnumerable<T> Flatten<T>(T[,] a) |
Gruß
Coolace
Moderiert von
Christian S.: Code- durch C#-Tags ersetzt
pdelvo - Do 10.11.11 22:29
Er meinte damit, das du dir eine Methode überlegen solltest, die aus einem zweidimensionalen Array eine Enumeration (zB eine liste) macht. Das macht in meinem Fall die eingebaute Cast<T>() Methode. Vieleicht übelegst du dir das mal rotzdem. Schaden kanns ja nicht^^
coolace - Fr 11.11.11 20:38
ah, ok. dann habe ich es verstanden.
Ich danke allen beteiligten für Ihre kompetente Hilfe.
Gruß
Coolace
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!