byte[] myarr = {1,4,3,4,1,2,1,2,4,3,1,4,2};
myarr da int [] val uzunluğu olacaktır uzunluğu 13 (0-12 Endeksi) olacaktır bir dizi var düşünelim.
int[] val = new int[13];
Değerinin 4 olduğu, yani 1,3,8,11 olduğu myarr dizinini kontrol etmek istiyorum.
Sonra ben bunu yapmanın
val[1]++;
val[3]++;
val[8]++;
val[11]++;
bir yolu döngü için kullandığı istiyorum
for(int i=0; i<myarr.length; i++)
{
if(myarr[i] == 4)
val[i]++;
}
Biz Array.indexOf kullanabilirsiniz ama değer zorunda anlamına bu değerin ilk dizini döndürür Eşsiz ol ve myarr'ımın birçok değeri var.
Bu, linq kullanılarak yapılabilir mi? Nihayet ben sorunuzu anladım;) yapabilirsiniz
myarr.Select((i, index) => new { Index = index, Value = i })
.Where(x => x.Value == 4)
.Select(x => x.Index)
.ForEach(i => myarr[i]++);
Neden LINQ ile ilgilenirsiniz? Örnek çalışıyorsun, gayet basit. Ayrıca, LINQ'dan alabileceğin en iyi şeyin gerçek değer olacağını düşünüyorum ... o zaman hala onu arttırmak ve diziye geri vermek zorundasın. – musefan
LINQ'daki 'Q' Query için duruyor. LINQ * sorgulama * verileri için kullanılır. * Verileri * değiştirmek istersiniz. For döngüsünüz bunu yapmanın yoludur. –
@GrahamClark: LINC için olası bir fikir mi? .... kim var? – musefan