По моему опыту, единственное время, это действительно добавляет бизнес-возможность, - когда существует потребность в 100%-й поддержке доступности. Когда у Вас есть пользователи, которые являются слабовидящими и/или используют screenreaders для просмотра сайта, необходимо удостовериться, что сайт совместим к стандартам доступности.
<забастовка> Пользователи, которые используют screenreaders, будут склонны иметь свою собственную высококонтрастную, таблицу стилей большого шрифта (если Ваш сайт не предоставит сам тот), который облегчает для screenreaders анализировать страницу.
<забастовка>, Когда screenreader читает страницу и видит таблицу, он скажет пользователю, что это - таблица. Следовательно при использовании таблицы для расположения это становится очень сбивающим с толку, потому что пользователь не знает, что содержание таблицы является на самом деле статьей вместо некоторых других табличных данных. меню должно быть списком или набором отделений, не таблицей с пунктами меню, снова это сбивает с толку. Необходимо удостовериться, что Вы используете блоки цитирования, атрибуты заголовка alt-tags, и т.д. для создания его более читаемым.
при создании дизайна управляемым CSS, тогда весь стиль может быть снят и заменен необработанным представлением, которое очень читаемо тем пользователям. Если у Вас есть встроенные стили, основанные на таблице разметки, и т.д., то Вы делаете его тяжелее для тех пользователей для парсинга содержания.
, В то время как я действительно чувствую, что обслуживание сделано легче для [приблизительно 110] вещи, когда Ваш сайт просто размечается с CSS, я не думаю, что имеет место для всех видов обслуживания - особенно, когда Вы имеете дело с CSS перекрестного браузера, который может, очевидно, быть кошмаром.
Короче говоря, Ваша страница должна описать свой состав в стандарты совместимый путь, если Вы хотите, чтобы он был доступен для упомянутых пользователей. Если Вы не имеете никакой потребности/требования и вероятно не будете нуждаться в нем в будущем, то не потрудитесь тратить впустую слишком много времени, пытаясь быть пуристом CSS:) Используют смесь стиля и методов расположения, который подходит Вам и делает Ваше задание легче.
За Ваше здоровье!
[РЕДАКТИРОВАНИЕ - добавленное перечеркивание к неправильным или вводящим в заблуждение частям этого ответа - см. комментарии]
В дополнение к предоставленным функциональным решениям (с использованием статических методов класса Enumerable
) вы можете передать массив double
s в конструкторе.
var tenDoubles = new List<double>(new double[10]);
Это работает, поскольку значение по умолчанию для double
уже равно 0 и, вероятно, работает немного лучше.
Один из вариантов - использовать Enumerable.Range
:
int capacity;
var list = Enumerable.Range(0, capacity).Select(i => 0d).ToList();
Другой:
int capacity;
var list = new List<double>(new double[capacity]);
Вы можете использовать инициализатор:
var listInt = new List<int> {4, 5, 6, 7};
var listString = new List<string> {"string1", "hello", "world"};
var listCustomObjects = new List<Animal> {new Cat(), new Dog(), new Horse()};
Таким образом, вы можете использовать это:
var listInt = new List<double> {0.0, 0.0, 0.0, 0.0};
В противном случае, используя конструктор по умолчанию, список будет пуст.
Используйте этот код:
Enumerable.Repeat(0d, 25).ToList();
new List<double>(new double[25]); //Array elements default to 0
Для более сложных типов:
List<Customer> listOfCustomers =
new List<Customer> {
{ Id = 1, Name="Dave", City="Sarasota" },
{ Id = 2, Name="John", City="Tampa" },
{ Id = 3, Name="Abe", City="Miami" }
};
отсюда: Блог Дэвида Хайдена