Подтвердить что ты не робот

Что такое С# эквивалент NSMutableArray и NSArray?

Что такое эквивалент С# NSMutableArray и NSArray?

Есть ли в С# изменчивый и не изменяемый файл? Я заметил, что string кажется изменяемым по умолчанию.

В качестве бонуса, как быстро заполнить массив в С#?

4b9b3361

Ответ 1

Это будет ArrayList и object[] соответственно, если вы учтете слабый характер типизации NSMutableArray и NSArray.

Массивы и списки в С# (по крайней мере для .NET 2.0 и выше) также могут быть строго типизированы, поэтому в зависимости от того, какой тип объекта вы храните, вы можете указать этот тип. Например, если у вас есть только NSString объекты в NSMutableArray в вашем коде Objective-C, вы должны использовать List<string>, и если вы используете их в NSArray, вы должны использовать string[] с фиксированный размер.

Чтобы быстро инициализировать и заполнить список или массив в С#, вы можете использовать то, что известно как инициализатор коллекции:

List<string> list = new List<string> { "foo", "bar", "baz" };
string[] array = { "foo", "bar", "baz" }; // Shortcut syntax for arrays

string в С# неизменен, как и NSString в рамках Foundation. Каждый раз, когда вы назначаете новую строку переменной, вы просто указываете или ссылаетесь на переменную на другой объект.

Ответ 2

List<String> stringList = new List<String>();
stringList.Add("Test");

Строка в С# неизменна. Эквивалентом NSMutableString в С# является StringBuilder. С#, в отличие от Objective-C, явно не представляет намерения метода в имени метода. Например, оба класса String и StringBuilder имеют метод Replace, который, как вы думаете, заменяет символы. String.Replace заменяет и возвращает новую строку, тогда как StringBuilder.Replace заменяет на месте.

Большинство методов в большинстве классов в С# (и Java тоже) работают так.

В Obj-C соглашения об именах понятны, это либо

[NSString stringByReplacing...]
[NSMutableString replace...]

Ответ 3

Для Xamarin.iOS в С#:

string[] pickerItemsArray;

pickerItemsArray = new string[]{"Item 1", "Item 2", "Item 3", "Item 4", "Item 5"};