मैं समझ नहीं पा रहा हूं कि Action
सूची के माध्यम से लूप कैसे करें। जब मैं इसे आज़माता हूं, तो मैं मानों को पिछले पुनरावृत्ति के समान ही समाप्त करता हूं।क्रियाओं की सूची के माध्यम से लूपिंग
यहाँ कोड (सरलीकृत उदाहरण) है:
string[] strings = { "abc", "def", "ghi" };
var actions = new List<Action>();
foreach (string str in strings)
actions.Add(new Action(() => { Trace.WriteLine(str); }));
foreach (var action in actions)
action();
आउटपुट:
ghi
ghi
ghi
क्यों यह हमेशा strings
में अंतिम तत्व को चुन रही है जब यह कार्रवाई करता है?
और मैं वांछित आउटपुट जो होगा कैसे प्राप्त कर सकते हैं:
abc
def
ghi
गाह, आप जीतते हैं। मुझे पता था कि इसे कैसे ठीक किया जाए, लेकिन मुझे कारण याद नहीं आया। बंद! मुझे बंद करने की ज़रूरत है! +1 :) – Joshua
@ जोशुआ यह बहुत समय पहले नहीं था जब मैंने थोड़ा गहराई से सीखा :) :) यह आगे पढ़ने के लिए अच्छा हो सकता है http://stackoverflow.com/questions/9412672/lambda-expressions-with -मल्टीथ्रेडिंग-इन-सी-तेज –
दिलचस्प, मुझे कभी एहसास नहीं हुआ। धन्यवाद। – demoncodemonkey