Dizileri Kopyalama
Coddy'nin C# Journey'sinin Temeller bölümünün bir parçası. Ders 58 / 70.
Öğeleri bir diziden diğerine kopyalamak için Array.Copy kullan. Beş bağımsız değişken alır:
Array.Copy(source, sourceIndex, destination, destinationIndex, length);source içinden sourceIndex konumundan başlayarak length öğe alır ve bunları destination içine destinationIndex konumundan başlayarak yazar. Hedef dizi önceden oluşturulmuş ve yeterince büyük olmalıdır.
Son argüman bir sayıdır: nerede durulacağını değil, kaç öğenin kopyalanacağını belirtir.
int[] scores = {90, 75, 60, 85};
int[] firstTwo = new int[2];
Array.Copy(scores, 0, firstTwo, 0, 2);
// firstTwo {90, 75} olacakdestinationIndex, kopyalanan ilk öğenin yerleştiği konumdur. Sayı olarak source.Length kullanıldığında, boyutu ne olursa olsun dizinin tamamı kopyalanır:
int[] source = {1, 2, 3};
int[] destination = new int[6];
Array.Copy(source, 0, destination, 3, source.Length);
// destination {0, 0, 0, 1, 2, 3} olacaktırBir diziyi diğerinin arkasına eklemek için ikinci diziyi, birincinin bittiği konuma kopyalayın. Bu konum, ilk dizinin Length değeridir:
int[] first = {1, 2};
int[] second = {7, 8, 9};
int[] all = new int[first.Length + second.Length];
Array.Copy(first, 0, all, 0, first.Length);
Array.Copy(second, 0, all, first.Length, second.Length);
// all, {1, 2, 7, 8, 9} olacakHer iki dizi de 0 indeksinden başlıyorsa, daha kısa bir biçim vardır: Array.Copy(source, destination, length):
int[] source = {4, 5, 6, 7};
int[] destination = new int[3];
Array.Copy(source, destination, 3);
// destination {4, 5, 6} olacakGörev
KolayAddToEnd adlı, bir dizge dizisi ve item dizgesi alan bir metot oluştur. Dizinin her öğesini aynı sırayla içeren ve sonuna item eklenmiş yeni bir dizi döndürür.
Örneğin, AddToEnd(new string[] {"a", "b", "c"}, "d") ["a", "b", "c", "d"] döndürür.
Öğeleri yeni diziye kopyalamak için Array.Copy() kullan.
Girdi biçimi (2 satır):
- 1. satır: virgüllerle ayrılmış dizi öğeleri (ör.
a,b,c) - 2. satır: eklenecek öğe (ör.
d)
Çıktı biçimi: yeni dizinin öğeleri virgül ve boşlukla ayrılır (ör. a, b, c, d)
Kendin dene
using System;
public class Program {
public static string[] AddToEnd(string[] arr, string item) {
// Kodu buraya yazın
}
public static void Main(string[] args) {
string[] arr = Console.ReadLine().Split(',');
string item = Console.ReadLine();
string[] result = AddToEnd(arr, item);
Console.WriteLine(string.Join(", ", result));
}
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Temeller bölümündeki tüm dersler
4Operatörler Bölüm 1
Aritmetik OperatörlerMod Alma OperatörüArtırma/AzaltmaSonradan Artırma/AzaltmaAritmetik Kısayollar7Temel Girdi/Çıktı
Temel ÇıktıString InterpolationGirdi OkumaParseÖzet - 120'ye KadarÖzet - True veya False5Operatörler Bölüm 2
Karşılaştırma OperatörleriMantıksal Operatörler Bölüm 1Mantıksal Operatörler Bölüm 2Özet - Basit MantıkMantıksal Operatörler Bölüm 311Dizilere Giriş
Dizileri TanımlamaElemanlara ErişmeDizileri DeğiştirmeDizileri KopyalamaDizi MetotlarıTekrar - Çarpım DizisiDüzenleme Tekrarı - Ters Çevrilmiş DiziKendi başına pratik yap: Online C# derleyicisi