perl में, splice फ़ंक्शन किसी मौजूदा सरणी से आइटम्स की एक नई सरणी देता है और साथ ही साथ इन आइटम्स को मौजूदा सरणी से हटा देता है।संग्रह पर विभाजन
my @newarry = splice @oldarray, 0, 250;
@newarray
अब @oldarray
से 250 रिकॉर्ड में शामिल होंगे और @oldarray
250 रिकॉर्ड कम है।
क्या सी # संग्रह कक्षाओं यानी ऐरे, सूची, कतार, स्टैक के समान समान कार्य के बराबर है? अब तक मैंने केवल उन समाधानों को देखा है जहां दो चरणों की आवश्यकता है (वापसी + हटाएं)।
[TestClass]
public class ListTest
{
[TestMethod]
public void ListsSplice()
{
var lst = new List<string>() {
"one",
"two",
"three",
"four",
"five"
};
var newList = lst.Splice(0, 2);
Assert.AreEqual(newList.Count, 2);
Assert.AreEqual(lst.Count, 3);
Assert.AreEqual(newList[0], "one");
Assert.AreEqual(newList[1], "two");
Assert.AreEqual(lst[0], "three");
Assert.AreEqual(lst[1], "four");
Assert.AreEqual(lst[2], "five");
}
}
.NET संग्रह कक्षाओं में कोई प्रत्यक्ष समकक्ष नहीं है। आप, निश्चित रूप से, अपनी खुद की सहायक विधि लिख सकते हैं जो वापसी + हटा देता है। आप विधि का उपयोग करने का इरादा कैसे रखते हैं? शायद पर्ल से पैटर्न ले जाने की कोशिश करने के बजाय इसे करने का एक और सी # आश रास्ता है। – dtb
धन्यवाद - मैंने स्प्लिस फ़ंक्शन को सूचियों में जोड़ने के लिए एक विस्तार विधि बनाई है - यह संभवत: आईनेमरेबल्स का समर्थन करने के लिए और भी सामान्यीकृत किया जा सकता है। – SADeveloper
आप 'Source.Skip (प्रारंभ) को प्रतिस्थापित कर सकते हैं। टेक (आकार)। स्रोत 0G()' स्रोत 'गेट्रेंज (प्रारंभ, आकार) '। – Henrik