【发布时间】:2019-06-05 11:00:11
【问题描述】:
像新的 .NET 6、7 等一样,我们有一个用于列表的除外类。
List<int> A = new List<int>();
List<int> B = new List<int>();
List<int> C = A.Except(B).ToList();
我的问题是,如何最好地处理同一类的字符串版本:
string A = "<div><p>One</p><p>Two</p></div>";
string B = "<div><p>One</p><p>Two</p><p>Three</p></div>";
string C = A.Except(B).ToString();
得到结果 = <p>Three</p>
相反,我得到:
System.Linq.Enumerable+<ExceptIterator>d__73`1[System.Char]
我做错了什么?
编辑:
只用最大的字符串排除最小的字符串,颠倒数组顺序:
string C = B.Except(A);
并使用:Nick's new string(C.ToArray()); 给我:
hr
使用反向后略有出乎意料的结果。
【问题讨论】:
-
什么是 .NET 6 和 7?我知道最新的 .NET Framework 4.7 和 .NET Core 2.2。
-
我想知道哪种算法会从两个字符串中生成
<p>Three</p>。您需要首先考虑这一点,也许用铅笔和纸。 -
看来我们有一个XY problem 有这个问题。请告诉我们您实际上想要达到什么目标?
-
如果你想获得类似 EXCEPT 的效果,你必须将你的字符串转换为子字符串列表,然后应用 EXCEPT。因此,您需要将 HTML 片段解析为
"<p>One</p>"、"<p>Two</p>"等列表。 Guillermo Gutiérrez 为您提供了基础知识。 -
Ciprian Vilcan 很好地解释了为什么您的原始代码不起作用。