Comme le nouveau .NET 6, 7 et ainsi de suite, nous avons une classe à l'exception des listes. Ma question est, comment va-t-il aller au mieux une version à chaîne du même Classe: p> Obtenir le résultat = trois p> code> p> P> P> P> P> P> >
hr
4 Réponses :
Lorsque vous utilisez la méthode de l'extension sauf (), le type de retour est une liste de caractères. P>
En outre, A.Excepts (B) ne produira jamais ce que vous voulez, car il convertit la chaîne en tableaux de caractère. Donc, il supprimera chaque char de A qui est présent en b. P>
Vous devez penser à un algorithme différent de le faire. P>
Utiliser String c = nouvelle chaîne (A.Except (b) .toarray ()); code> p>
Cela ne produira pas le résultat attendu, au fait.
Une solution pratique pour les tableaux de caractère - merci!
wnat que vous voulez n'est pas Vous pouvez obtenir le résultat que vous attendez avec avec le régulier expression une p> deux p> (? un p> deux p> code> et la fin ( $ < / strong>) avec Cependant, je ne vous recommanderais pas de sauf code>, car il s'agit d'une opération définie appelée Définir la différence ou le complément relatif , dans lequel vous dites que vous souhaitez que les éléments d'un ensemble qui ne soient pas présents dans un autre.
^
div> code>, et que tout ce qui existe entre celui-ci contient << / fort>, > strong>, / strong> , ou n'importe quel caractère alphanumérique (
Il y a deux problèmes avec votre solution.
Lorsque vous faites .Tostring () sur un iénumérable, il imitera toujours le type. Cela est dû au fait que iEnumerable ne remplace pas le comportement de Tostring (). Voir Tostring Pour plus d'informations sur cela. La méthode à l'exception ne fonctionne pas vraiment comme vous le pensez. Le résultat de ce serait {1}. Quelle est la méthode effectivement renvoie une nouvelle énumération de tous les INT qui sont présents dans un, mais pas en b. de la perspective de Linq est équivalent à p> La même chose va pour B. si vous faites maintenant p> Ce que vous obtiendrez est "alp". À mon avis, la meilleure façon de faire, sauf pour analyser vos chaînes, transformez-les en objets, puis faites l'exception. Aucun algorithme intégré n'a la capacité de dire que vos chaînes sont en réalité structurées et comment la différencier parmi eux. Et en tant que solution de travail utilisant HTMLAGILITERPACK (un package Nuget) P> < Pré> XXX PRE> Je vous laisserai faire une approche plus générale :) dans cet exemple) à l'aide de HTMLagilityPack ou de regex, comme suggéré dans d'autres solutions, est entièrement à vous.
Si vous souhaitez convertir un
p > Comportement de A.Except (B) H2>
de
Prenons par exemple le code suivant: p>
de
Maintenant, les chaînes ne sont qu'une énumération de caractères - plus précisément, votre P>
de
Donc, lorsque vous faites un fichier A.EXCEPT (B), quel Linq fera-t-il réellement passera à travers chaque personnage et voyez s'il peut le trouver dans B. Si tel est le cas, cela ne se retrouve pas dans le jeu de résultats. Maintenant, puisque tous les caractères d'A sont également présents dans B, vous obtiendrez une chaîne vide. Pour voir que c'est en fait le cas, modifiez légèrement A de sorte qu'il contient un caractère non in b: p>
P> Solution H2>
Mais l'idée est que si vous le souhaitez, sauf de travailler comme vous l'attendez, vous devrez le demander de travailler avec des chaînes, pas des caractères.
de
Si vous faites l'analyse requise pour extraire les composants de votre chaîne (les éléments
p> p>
C'est bon et complet en termes d'informations, mais cela ne propose pas de solution.
Merci CIPRIAN VILCAN, j'apprécie vos efforts ici!
Qu'est-ce que 0 et 7? Je connais le dernier .NET Framework 4.7 et .NET CORE 2.2.
Je me demande quel algorithme produirait
trois p> code> des deux cordes. Vous devrez penser à cette première, peut-être avec un crayon et du papier.
Il semble que nous ayons un XY Problème avec cette question. S'il vous plaît dites-nous ce que vous êtes en fait b> essayer d'atteindre?
À la recherche de la différence dans les chaînes A et B. Ainsi, l'instruction sauf qui fonctionne avec des listes.
Si vous souhaitez obtenir un effet sauf, vous devrez convertir vos chaînes à des listes de sous-chaînes, puis appliquez sauf. Donc, vous auriez besoin d'analyser votre fragment HTML dans une liste de
"
un p>" code>,
"
deux p>" code>, etc. Guillermo Gutiérrez B> vous donne les bases pour cela.
CIPRIAN VILCAN B> A fait un très bon travail d'expliquer pourquoi votre code d'origine ne fonctionne pas.