C# 如果元素包含C中的值,如何在XML中找到重复项?

C# 如果元素包含C中的值,如何在XML中找到重复项?,c#,.net,xml,linq,C#,.net,Xml,Linq,我有一个XML: <root> <p>This is a Value</p> <p>This is a Value</p> <p>This is a Value</p> <p>This is a Value</p> <p>This is a Value</p> <p>This is a Value</p> <h3>Another

我有一个XML:

<root>
<p>This is a Value</p>
<p>This is a Value</p>
<p>This is a Value</p>
<p>This is a Value</p>
<p>This is a Value</p>
<p>This is a Value</p>
<h3>Another Value</h3>
<h3>Another Value</h3>
<h3>Another Value</h3>
<h3>Another Value</h3>
<h3>This is Another Value</h3>
</root>

这将查找重复的值,但不会显示这是另一个重复的值。我还想找到包含该值的所有元素。

使用g.Count>=1?这将搜索文件中的几乎所有内容。我只想搜索valueDuplicate中的不同值。是否需要包含的分组依据?@AmirNorouzpour-是。所以,所有元素都等于或包含值或其他值,它将显示。我的代码只处理等式你的输出必须是:Value:Value-11倍?看起来这和我的输出是一样的。它不处理Contains,仅等于.var xml_Doc=XDocument.LoadServer.MapPathxmlpath.xml;IEnumerable search_date=null;search_date=从xml中的xFi_Doc.genderants列表中选择xFi,其中xFi.Elementtag.Value.Containsvalue选择xFi;这是有效的:。只是一个更新,出于某种原因,它还接受valueDuplicate变量中的null值。
XDocument XDocument = XDocument.Parse(MyXmlFile);
        var grouped = XDocument.Descendants("P").GroupBy(x => x.Value).Where(g => g.Count() > 1);
        foreach (var groupItem in grouped)
        {
            foreach (var item in groupItem)
            {
                Console.WriteLine(item);
            }
        }
XDocument XDocument = XDocument.Parse(MyXmlFile);
        var grouped = XDocument.Descendants("P").GroupBy(x => x.Value).Where(g => g.Count() > 1);
        foreach (var groupItem in grouped)
        {
            foreach (var item in groupItem)
            {
                Console.WriteLine(item);
            }
        }
XDocument xdoc = XDocument.Parse(xml);
var values = xdoc.Descendants().Select(x => x.Value);
var valueDuplicate = xdoc.Descendants().Select(r => new
 {
  el = r,
  value = values.FirstOrDefault(c => r.Value.Contains(c) || r.Value == c)
 }).GroupBy(x => x.value, x => x.el).Where(x => x.Count() > 1).ToList();

string s = string.Join(Environment.NewLine, valueDuplicate.Select(t => "Value: " + t.Key.Trim() + "- " + t.Count() + " times."));