2016-03-22 24 views
0

Dizelerimin listesini döndüren MyCustomMacro'yu kullanıyorum. Bu listeyi, özel ayırıcı beetwen liste öğeleriyle göstermem gerekiyor. Bu kod ayrıca son öğeden sonra "|" değerini de ekler.Foreach öğesinden öğe indeksi

Bu elemanın listede son olarak nasıl olduğunu kontrol edebilirim?

+1

Olası kopyalar http://stackoverflow.com/questions/43021/how-do-you-get-the-index -e-geçerli-yineleme-of-a -each-döngü) – Bryan

cevap

-1

Katılabilirsiniz kullanabilirsiniz dize sınıfı yöntemi:

{% string.join ("|", MyCustomMacro ("olaylar"))%}

+0

Bu kod yalnızca Kentico CMS'de çalışır, bir K # makro ifadesidir. C# 'da sadece' string.join ("|", yeni string [] {}) 'i kullanmanız gerekir. –

0

Buna göre tefriş yapabilirsiniz:

{% result=""; 
    foreach (ev in MyCustomMacro("events")) 
    { 
    result+= ev + " | "; 
    }; 
    result.TrimEnd(" | ") 
%} 
+0

Bu çalışır ama biraz bir kesmek. Bunun için önceden oluşturulmuş bir yöntemi kullanın: string.Join() ' –

3

bir dize dizideki değerler elde edebilirsiniz eğer, bunu yapabilirsiniz:

string.Join("|", events[]) 

Examples

2

Dize StringBuilder sınıfının kullanılması çok verimli bir yol olduğunu düşünüyorum.

Bu satırlarda bir şey.

{% 
    var builder = new StringBuilder(); 
    foreach (ev in MyCustomMacro("events")) 
    { 
    builder.append(ev + " | "); 
    }; 
    result = String.Join("|", builder.Split('|')); 
%} 
[Eğer bir foreach döngü geçerli yineleme dizinini nasıl alabilirim?] (Içinde