Dies ist der Code LINQ verwendet, ist es die Werte in der Liste speichertKann ich das LINQ-Abfrageergebnis in einem Array speichern?
string StringRegex = "\"(?:[^\"\\\\]|\\\\.)*\"";
Dictionary<string, string> dictionaryofString = new Dictionary<string, string>()
{
{"String", StringRegex}
};
var matches = dictionaryofString.SelectMany(a => Regex.Matches(input,a.Value)
.Cast<Match>()
.Select(b =>
new
{
Index = b.Index,
Value = b.Value,
Token = a.Key
}))
.OrderBy(a => a.Index).ToList();
for (int i = 0; i < matches.Count; i++)
{
if (i + 1 < matches.Count)
{
int firstEndPos = (matches[i].Index + matches[i].Value.Length);
if (firstEndPos > matches[(i + 1)].Index)
{
matches.RemoveAt(i + 1);
i--;
}
}
}
foreach (var match in matches)
{
Console.WriteLine(match);
}
Kann es nicht in Array gespeichert werden? Wo ich nur Artikel anzeigen kann, die ich möchte. Genau wie hier ist die Ausgabe {Index =, Wert =, Token =} In der Zwischenzeit möchte ich die Ausgabe, die gerade von "Value" "Token" Index wird nicht benötigt.
Dies ist das erste Mal, dass ich bin mit ToList Funktion. Und kann die Ausgabe nicht steuern. zum Beispiel, aktuelle Ausgabe ist {Index = 0, Wert = "asd", Token = String "} Ich möchte die Ausgabe zu sein:" asd "Token – Ali
Ich habe meine Antwort aktualisiert. –
Marko, es hat funktioniert aber es zeigt nur das Wertfeld, kann es auch mit Token-Feld verkettet werden? – Ali