मैं सी # में किसी SharePoint वेबपार्ट के लिए कुछ कस्टम कोड कर रहा हूं। विशेष रूप से, मैं एक प्रश्नोत्तरी बना रहा हूं, यहां मेरा मुख्य बिंदु उस सूची को संबोधित करता है जिसमें प्रश्न, उत्तर विकल्प और सही उत्तर है।सबसे कुशल सी # शेयरपॉइंट सूची पुनरावृत्ति
प्रश्नोत्तरी के अंतिम चरण में मुझे सूची में सही उत्तर के विरुद्ध उपयोगकर्ता द्वारा चुने गए उत्तरों की जांच करने की आवश्यकता है। वर्तमान में, मैं यह जांचने के लिए निम्नलिखित कर रहा हूं कि प्रत्येक सही है या नहीं, जो मुझे लगता है कि यह बहुत प्रभावी नहीं है क्योंकि यह प्रत्येक प्रश्न के माध्यम से पुनरावृत्त होता है। क्या कोई तरीका है, विशेष रूप से एसपीएलिस्ट फोरैच लूप के लिए, यह अधिक कुशल होगा?
// 1. Store questions and answers in class
List<submittedAnswers> answeredQuestions = new List<submittedAnswers>();
// 2. From POST pull answered question IDs and answer IDs (which correspond to the question primary key and answer choice number both stored in the list)
// INSERT BEAUTFIUL AND EFFICIENT WHILE LOOP HERE
// 3. Loop through each question is list, if question was given, test if correct/incorrect
using (SPWeb myWeb = mySite.OpenWeb())
{
SPList answerList = myWeb.Lists[questionList];
foreach (SPListItem quizEntry in answerList.Items)
{
int pullAnswerId = int.Parse(quizEntry["Answer"].ToString()); // Pull answer number from list
int pullQuestionId = int.Parse(quizEntry["ID"].ToString()); // Pull primary key of question
submittedAnswers result = answeredQuestions.Find(delegate(submittedAnswers e) { return e.questionId == int.Parse(quizEntry["ID"].ToString()); });
if (result != null)
{
if (result.responseId != pullAnswerId) // If the response was different from the answer
incorrectAnswers++;
else
correctAnswers++;
}
}
}
// C# quiz grading magic here....
यह कोड कहां चल रहा है (ईवेंट रिसीवर? वेबपार्ट?) क्या आप हर प्रश्नोत्तरी ग्रेडिंग से बचने की कोशिश कर रहे हैं? सुनिश्चित नहीं है कि आप ऑप्टिमाइज़ करने का प्रयास क्यों कर रहे हैं ... –
प्रश्नोत्तरी वेब पार्ट में चल रही है, और मेरे पास दो चिंताएं हैं: 1. जब हम प्रश्नोत्तरी जारी करते हैं तो संभवत: इसमें कुछ सौ लोग इसे ले सकते हैं और मैं चाहता हूं बाधाओं को कम करने के लिए। 2. यह पहला एएसपी.नेट प्रोग्रामिंग है जो मैंने कभी किया है और चूंकि मैं मुख्य रूप से PHP, ओओ डिज़ाइन और प्रोग्रामिंग में काम करता हूं, मुझे फेंक देता है। इसके अतिरिक्त, मैंने कुछ ब्लॉग पढ़े हैं जो कहते हैं कि सूची के माध्यम से पुनरावृत्त करने की यह विधि बहुत अक्षम है। –
ठीक है अगर आपकी "प्रश्न" सूची में प्रश्नोत्तरी पर दिखाई देने वाले सभी प्रश्न हैं और आपको प्रत्येक उपयोगकर्ता के उत्तर को सत्यापित करने की आवश्यकता है तो मैं कहूंगा कि एक foreach ठीक है। –