У меня была такая же проблема. На моей раскадровке у меня была кнопка без изображения.
Тогда я бы присвоил изображение в коде.
Пришел IOS 7, и у меня появилось много синих изображений.
Разрешение было простым, но сбивающим с толку. Если я назначаю любое изображение в раскадровке, а затем меняю изображение во время выполнения, он отлично работает.
Вы всегда должны указывать начальный образ на раскадровке, даже если вы не собираетесь его использовать.
A List<T>
является и IEnumerable<T>
. Как и массив, так же, как и множество других классов. Когда мы говорим, что это IEnumerable<T>
, мы имеем в виду, что он реализует этот интерфейс.
Так что, если у меня есть этот метод:
void PrintStringsToConsole(IEnumerable<string> strings)
{
foreach(var s in strings)
{
Console.WriteLine(s);
}
}
Любой из них будет работать. Вам не нужно ничего конвертировать.
var stringArray = new string[] {"a", "b", "c"};
PrintStringsToConsole(stringArray);
var stringList = new List<string> {"x", "y", "z"};
PrintStringsToConsole(stringList);
var hashSet = new HashSet<string> {"a","b","c"};
PrintStringsToConsole(hashSet);
var filteredList = stringList.Where(s => s != "a");
PrintStringsToConsole(filteredList);
В большинстве случаев вам не нужно конвертировать список в IEnumerable. Я предполагаю, что вы говорите о сигнатуре метода, которая определяет тип IEnumerable в качестве параметра, и это просто способ для метода принять любую коллекцию, которая реализует интерфейс, в отличие от явного объявления переопределения для каждого типа коллекции .