Доброго времени суток, собственно сабж в заголовке. Пробовал юзать метод ToList(), но... но метод Contains у интерфейса возвращает true, а у получившегося List - false.
более подробно алгоритм: заюзал ORM для MSSQL, создаю элемент таблицы Log:
SQL.DeviceDataBase db = new SQL.DeviceDataBase(
@"Data Source=" + Core.Settings.SQL_ServerName + @";
Initial Catalog=" + Core.Settings.SQL_DeviceBaseName + @";
Integrated Security=True");
var log = new SQL.Log();
log.Date = _time;
log.ArriveDate = _now;
log.DeviceID = _device;
log.ChannelID = channel;
log.UserID = user;
log.Message = _message;
log.Type = _type.ToString();
log.Hash = _hash;
db.Logs.InsertOnSubmit(log);
db.SubmitChanges();
return log;
далее получаю общий список текущих отображаемых Log:
SQL.DeviceDataBase db = new SQL.DeviceDataBase(
@"Data Source=" + Core.Settings.SQL_ServerName + @";
Initial Catalog=" + Core.Settings.SQL_DeviceBaseName + @";
Integrated Security=True");
IQueryable<Log> logs =
from lgs in db.Logs
where (
lgs.Date >= _date &&
(string.IsNullOrEmpty(_device) || lgs.DeviceID == null || lgs.DeviceID.Contains(_device)) &&
lgs.Message.Contains(_message) &&
lgs.Type.Contains(_type))
select lgs;
return logs.OrderBy(order, ascending).Take(Core.Settings.LogMaximumCount);
в результате получаю код вида:
SQL.Log item = SQL.SQLCommander.CreateLogItem(_time, _device, _channel, _user, _message, _type);
IQueryable<SQL.Log> items = GetItems(starttime, SDevice, SMessage, SType, TOrder, BEnd);
а потом необходимо добавить item в GUI. Я покумекал, постоянно перерисовывать все данные жутко, и хотелось бы просто добавить в таблицу (на самом деле без биндинга, просто StackPanel с толпой UserControl'ов) одну единственную строку, но опять таки, может быть много различных фильтров, сортировок и пр., по этому хотел узнать индекс добавляемого итема, и по этому же индексу произвести Insert в StackPanel. Но нихрена чтото так не работает:
bool c = items.Contains(item); //true
bool d = items.ToList<SQL.Log>().Contains(item); //false
bool e = items.ToArray<SQL.Log>().Contains(item); //false
а метод IndexOf есть только у List... в общем, у меня получилось сделать операцию только используя дикий костыль:
List<SQL.Log> lst= items.ToList<SQL.Log>();
SQL.Log item = lst.Where(x => x.ID == item.ID).FirstOrDefault();
index = lst.IndexOf(item1);
и у меня получилось это порядка 400 миллисекунд, хрень. кто виноват разберёмся потом, но второй извечный вопрос остаётся, что делать?) может у кого какие идеи есть?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Каждый раз,при нажатии на кнопку обновить,выводятся данные из моей таблицы товаров повторно,даже те,которые уже существуютПодскажите,как...
После попытки скомпилировать код, появилось исключение (exception - 28P01) - смскриншот
Подскажите пожалуйстаМоя проблема состоит в том, что при построении графика в ReportViewer на
Добрый день, у меня такой вопрос, в OpenCart 3 сменили owl-carousel на Swiper и теперь половина параметров не работает, может под него другие параметры?...