द्विआधारी मानों की सूची है: संक्रमण सूची के आसन्न आइटम के लिए मूल्य संचारण, सी # में
List<bool> myList = new List<bool>(){true, true, false, false, true, false, false, false, true, true, true, false, false};
मेरी एल्गोरिथ्म करना है, सच के लिए किसी भी झूठी आइटम परिवर्तित करने के लिए अगर वे एक सच्चे के निकट हैं मूल्य:
result = {true, true, true, true, true, true, false, true, true, true, true, true, false}
मेरा समाधान काम करता है, जैसा कि आप देखेंगे। मैं दो अलग-अलग छोरों के माध्यम से यह कर सकते हैं, और उसके बाद दो सूचियों ज़िप:
List<bool> firstList = new List<bool>();
List<bool> secondList = new List<bool>();
for(int i=0; i<myList.Count()-1; i++){
if(myList[i]==true){
firstList[i]=true;
firstList[i+1]=true;
}
}
for(int i=1; i<myList.Count(); i++){
if(myList[i]==true){
secondList[i]=true;
secondList[i-1]=true;
}
}
List<bool> finalList = firstList.Zip(secondList, (a,b)=>a||b).ToList();
हालांकि, यह बाद से समस्या बहुत आसान लग रहा है सबसे अच्छा समाधान होने के लिए प्रतीत नहीं होता। एक लूप के माध्यम से या अधिमानतः linq का उपयोग करने के लिए कोई विचार है?
कुल उपयोग क्यों नहीं करते? –