2015-06-10 5 views
1
CompanyList companyList = new CompanyList(); 
companyList.matchCompanies(); 
CompanyListObject[] companyListObject = companyList.companyList; 

List<double> companylist = new List<double>(); 
foreach (var company123 in companyListObject) 
{ 
    if (company123.parentCompany == companyID) 
    { 
     companylist.Add(company123.companyID); 
    } 
} 

IEnumerable<RaCallRatesMatched> items = 
    db.RaCallRatesMatched.Where(row => row.accountcode == companyIDDouble); 

Я хочу вывести результаты, в которых значение строки присутствует в списке. В основном мой список содержит все идентификаторы компании. Это довольно короткий список, некоторые из них 3-5 элементов. Вместо того, чтобы проверять, равна ли строка только одному из значений списка. Могу ли я проверить, совпадает ли он с ними?Найти, где значение строки находится внутри списка

Имейте в виду, что я не могу использовать операторы || в фиксированном контексте, так как размер списка будет отличаться. Например, сравнение с List[0] || List[1] || List[2] слишком сильно, и я получу исключение, если оно слишком длинное.

Я не могу сделать несколько вызовов в базе данных, потому что каждый вызов относится к представлению, которое занимает очень много времени для сборки. Могу ли я сделать все это за один звонок?

+0

Возможно, лучше всего выполнить эту проверку в SQL-запросе, чтобы вы не возвращали столько ненужных данных, которые затем вам нужно пропустить. Можете ли вы опубликовать запрос для используемого представления и некоторые примеры данных? – MartianCodeHound

+0

Спасибо, Марсиан. Проблема заключается в том, что база данных не содержит всех необходимых данных и требует ввода. – markthewizard1234

ответ

1

Применение .Any()

например,

MyCompanyList.Any(x => x.Equals(MyCompanyName)); 

Где MyCompanyList - это список строк в этом примере. Это также можно применить к списку int. и т. д.

Вы можете сравнить любой параметр в сложных классах или любую действительную проверку равенства.

Другие примеры: http://www.dotnetperls.com/any

+0

Я хочу вытащить из базы данных не из своего списка. – markthewizard1234

+0

Вы можете применить. Любой к сущности из базы данных. – Doomsknight

1
IEnumerable<RaCallRatesMatched> items = db.RaCallRatesMatched.Where(row => companylist.Any(y => y == row.accountcode)); 

Это работало. Спасибо Doomsknight и пару моих коллег по работе!

Смежные вопросы