سؤال

وهناك شيء خاطئ مع قانون بلدي أو أنا فقط لا فهم هذا تماما. لدي التعليمات البرمجية التالية التي تدير استعلام التي قد تحتوي على سمة اليمين أكثر من واحد وتريد تخزين كل ضمن مجموعة لجلب لاحق:

        var members = from myList in o_data.Descendants(bp + "Reaction")
                            select new
                            {
                                participant = myList.Element(bp + "RIGHT").Attribute(rdf + "resource").Value,
                            };

        return members.ToArray(); // I this the right conversion (to store all attributed values to array)?

ونظرا لأنها لم يكن لديك مجموعات في Silverlight، وأنا أحاول أن مجرد العودة صفيف ... عندما كنت استدعاء الدالة كما يلي:

وFunctionName.GetValue (0) .ToString ()؛

وتعود {مشارك = # (ValueOfAttribute)}

وأريد فقط لإرجاع القيمة الفعلية، وليس الأقواس كيرلي أو "من مشارك =" ما الذي يحدث هنا؟

هل كانت مفيدة؟

المحلول

والأقواس المعقوفة وهناك لتنفيذ ToString من نوع مجهول التي تقوم بإنشائها في الاستعلام LINQ يضع لهم هناك.

وفيما يلي تنفيذ ToString من نوع مجهول:

public override string ToString()
{
    StringBuilder builder = new StringBuilder();
    builder.Append("{ test = ");
    builder.Append(this.<test>i__Field);
    builder.Append(" }");
    return builder.ToString();
}

إذا كنت تريد فقط لإرجاع قيمة "مشارك"، وإزالة كل نوع الاشياء المجهولة ومجرد اختيار تلك القيمة:

var members = from myList in o_data.Descendants(bp + "Reaction")
  select myList.Element(bp + "RIGHT").Attribute(rdf + "resource").Value;
return members.ToArray();

وأخيرا، إذا كنت ترغب في تحديد قيم متعددة لكل عنصر (رمز عينة لديه فاصلة التعلق أن يعني هذا)، وتحديد نوع اسمه وخلق حالات من هذا في الاستعلام الخاص بك. يمكنك ثم الرجوع إلى خصائص النوع خارج طريقة الاستعلام، وذلك لأن مجموعة ستكون مجموعة من الحالات من هذا النوع، بدلا من مجموعة واسعة من وجوه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top