Вы хотите использовать традиционный цикл for, чтобы вы могли использовать индекс для привязки к вашему List<T>
в модели, вам также нужно будет сделать items
изменяемым, поэтому вам нужно иметь set
] для этого также, иначе вы не сможете ничего отправить:
//You'll need to make this mutable, so it can post the edited values
public List<Items> items { get; set; } = new List<Items>();
Тогда в вашем представлении:
@for(int i = 0; i < Model.items.Count; i++)
{
@Html.HiddenFor(x => Model.items[i].ItemId)
@Html.HiddenFor(x => Model.items[i].ItemCode)
<tr class="shoppingCartRow" id="@Model.items[i].ItemId">
<td class="cart-img nostretch">
<a href="#"><img src="@Model.items[i].ImageUrl" alt=""></a>
</td>
</tr>
<tr>
<td>
@Html.TextboxFor(x=> Model.items[i].PersonalizedName, new { @placeholder = "Personalized Name"})
</td>
</tr>
<tr>
<td>
@Html.TextboxFor(x=> Model.items[i].Country, new { @placeholder = "Country"})
</td>
</tr>
}
Самый простой способ для каждого char
в String
- использовать toCharArray ()
:
for (char ch: "xyz".toCharArray()) {
}
Это дает вам краткость для -Каждая конструкция, но, к сожалению, String
(которая является неизменной) должна выполнять защитную копию, чтобы сгенерировать char []
(которая является изменяемой), поэтому есть некоторая потеря стоимости.
[
toCharArray ()
возвращает] вновь выделенный символьный массив , длина которого равна длине этой строки, и чье содержимое инициализировано, чтобы содержать последовательность символов, представленную этой строкой.
Есть более подробные способы перебора символов в массиве (обычный цикл for, CharacterIterator
и т. Д.), Но если вы готовы заплатить toCharArray ()
за -каждый самый лаконичный.
К сожалению, Java не делает String
реализация Iterable<Character>
. Это могло легко быть сделано. Существует StringCharacterIterator
, но это даже не реализует Iterator
... Поэтому сделайте свое собственное:
public class CharSequenceCharacterIterable implements Iterable<Character> {
private CharSequence cs;
public CharSequenceCharacterIterable(CharSequence cs) {
this.cs = cs;
}
@Override
public Iterator<Character> iterator() {
return new Iterator<Character>() {
private int index = 0;
@Override
public boolean hasNext() {
return index < cs.length();
}
@Override
public Character next() {
return cs.charAt(index++);
}
};
}
}
Теперь можно (несколько) легко работать for (char c : new CharSequenceCharacterIterable("xyz"))
...
Вам необходимо преобразовать объект String в массив символов с помощью метода toCharArray
() класса String:
String str = "xyz";
char arr[] = str.toCharArray(); // convert the String object to array of char
// iterate over the array using the for-each loop.
for(char c: arr){
System.out.println(c);
}
String s = "xyz";
for(int i = 0; i < s.length(); i++)
{
char c = s.charAt(i);
}