Convertir C#.net avec lamba expression vers VB.net
Bonjour à tous,
Je ne suis pas du tout familiarisé avec les expressions lambda, de ce fait je n'arrive par à convertir la méthode ci-dessous en Vb.net.
Quelqu'un pourrait-il m'aider et/ou me fournir la méthode en VB.net SVP ?
Un gros merci à tous, et bonne soirée :)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
private static string StripOLList(string source)
{
string output = "";
try
{
string patternOL = @"<(ol)\s[^\>]*>(<li>.*?</li>)+?</\1>";
string trg = Regex.Replace(source, patternOL, (param) =>
{
if (param.Groups[1].Value.Equals("ol"))
{
int i = 1;
foreach (Capture c in param.Groups[2].Captures)
output += String.Format("{0}. {1}\n", i++, Regex.Replace(c.Value, "<li>(.*?)</li>", "$1"));
}
return output;
});
return trg;
}
catch
{
return source;
}
} |
les converter automatiquses ne fonctionnent pas...
Citation:
Envoyé par
Momoth
Merci beaucoup pour la réponse, toutefois, j'ai essayé plusieurs sites de conversion automatique, mais cela ne fonctionne pas à cause de l'expression Lambda...
Autre suggestion ou aide svp ?
Merci encore :)
ok, mais param est de quel type et initialisé comment ?
Citation:
Envoyé par
ZenZiTone
Code:
1 2 3 4 5 6 7 8 9
|
Function(param) [...]
'Exemple :
MaListe.Where(Function(param) param.MaPropriete = true)
MaListe.Where(Function(param)
Return param.MaPropriete = true
End Function) |
Voila ce que j'ai fait, tu devrais comprendre ou je bloque :( :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
private static string StripOlList(string source)
{
string output = "";
try
{
string patternOL = @"<(ol)\s[^\>]*>(<li>.*?</li>)+?</\1>";
string trg = Regex.Replace(source, patternOL, convertir(param)); //comment j'initialise param et de quel type est-il ?
return trg;
}
catch
{
return source;
}
}
string convertir (?????? param) //param est de quel type ?
{
string output = "";
if (param.Groups[1].Value.Equals("ol"))
{
int i = 1;
foreach (Capture c in param.Groups[2].Captures)
output += String.Format("{0}. {1}\n", i++, Regex.Replace(c.Value, "<li>(.*?)</li>", "$1"));
}
return output;
}
} |
C'est Bon j'ai trouvé ! :)
Un gros merci a qui m'a mis sur la piste, pour ceux que cela intéresse voici le code en VB.net :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
Private Function ConvertirListesHtmlToPlainText(ByVal source As String) As String
Dim patternOlUl As String = "<(ul|ol)>(<li>.*?</li>)+?</\1>"
Dim resultat As String = Regex.Replace(source, patternOlUl, AddressOf RemplacePucesNumeros)
Return resultat
End Function
Private Function RemplacePucesNumeros(ByVal param As Match) As String
Dim resultat As String = ""
If param.Groups(1).Value.Equals("ol") Then
Dim i As Integer = 0
For Each optionTrouvee As Capture In param.Groups(2).Captures
i += 1
resultat = (resultat + String.Format("{0}. {1}" & vbLf, i, Regex.Replace(optionTrouvee.Value, "<li>(.*?)</li>", "$1")))
Next
Else
For Each optionTrouvee As Capture In param.Groups(2).Captures
resultat = (resultat + String.Format("{0} {1}" & vbLf, "-", Regex.Replace(optionTrouvee.Value, "<li>(.*?)</li>", "$1")))
Next
End If
Return resultat
End Function |