c# - How do I group these XDocuments? -


समस्या

मेरे पास XDocument उदाहरणों का संग्रह है प्रत्येक दस्तावेज़ में दोहराए गए तत्व होते हैं जो एक अलग मान ले सकते हैं। मैं उन्हें इस मूल्य से समूह बनाना चाहता हूं लेकिन प्रत्येक तत्व एक अलग मान निर्दिष्ट कर सकता है।

  & lt; sampledoc & gt; & LT; मूल्य & gt; & lt; / मूल्य & gt; & LT; मूल्य & gt; ख & lt; / मूल्य & gt; & LT; मूल्य & gt; सी & lt; / मूल्य & gt; & Lt; / sampledoc & gt;  

उदाहरण

  • दस्तावेज़ ए में मान ए, बी, सी
  • दस्तावेज़ बी में मान बी, सी, डी
  • दस्तावेज़ सी में मान A, b

मुझे एक समूह बनाना चाहते हैं:

  • समूह
    • दस्तावेज़ ए < / Li>
    • दस्तावेज़ सी
    • समूह ख
      • दस्तावेज़ ए
      • दस्तावेज़ बी
      • दस्तावेज़
      • दस्तावेज़ ए
      • दस्तावेज़ ए
      • दस्तावेज़ बी
    • समूह डी
      • दस्तावेज़ बी

    प्रश्न

    मुझे यकीन है कि मुझे ऐसा करने में सक्षम होना चाहिए लेकिन मैं अभी पेड़ों के लिए लकड़ी नहीं देख सकता।

    डॉक्स.समूह ... ... स्वयं पर काम नहीं करेगा (जहाँ तक मैं बता सकता हूं) क्योंकि अभिव्यक्ति इसे एक मान वापस लेना चाहिए, और प्रत्येक दस्तावेज़ में एकाधिक मान हो सकते हैं मेरा सिर कहते हैं कि एक एकल LINQ क्वेरी संभव होनी चाहिए, लेकिन यह नहीं समझ सकता कि यह क्या होगा।

    क्या यह GroupBy या AsLookup LINQ तरीकों? क्या ऐसा करने का कोई तरीका है?

    मैं सी # में उदाहरण चाहूँगा अगर किसी को भी एक प्रदान करने के लिए तैयार हो।

    अपडेट

    उत्तर के लिए धन्यवाद से और एक छोटी सी प्रेरणा, मैं इसे इस प्रकार हल करता हूं:

      // सभी विभिन्न मूल्यों को संललित करें। दस्तावेज़। चयन (doc = & gt; doc.Elements ("मान")। चयन करें (एल = & Gt; el.Value)) // डुप्लिकेट मान निकाल दें। () () = () = (1) डॉक्टर = & gt; doc.Elements ("मान")। कोई भी (एल = & gt; एल.वैल्यू == वी)));  

ग्रुप बाय यहां वैसे भी आपकी मदद नहीं करेगा, क्योंकि यह केवल एक समूह के अनुक्रम में प्रत्येक तत्व को निर्दिष्ट करता है।

<पूर्व> var डॉक्स = नया XDocument [] {docA, docB, docC}; Var परिणाम = डॉक्स .SelectMany (doc = & gt; doc.Root.Elements ("मान"))। चुनें (एल = & gt; el.Value)। निस्संदेह ()। चयन (कुंजी = & gt; नया {कुंजी = कुंजी, दस्तावेज़ = दस्तावेज़। कहां (डॉक्टर = & gt; doc.Root.Elements ("मान")। कोई भी (एल = & gt; एल.वल्यू == कुंजी))});

Comments

Popular posts from this blog

c# - ListView onScroll event -

PHP - get image from byte array -

Linux Terminal Problem with Non-Canonical Terminal I/O app -