Поиск данных в коллекции объектов, значения которой являются общими для всех имен в объекте - PullRequest
0 голосов
/ 01 июля 2010

У меня есть коллекция объектов, которые содержат имена, местоположения и значения. У меня есть список мест, с которыми мне нужно сравнить данные. Мне нужно только извлечь записи, имена и значения которых являются общими для всех мест в моем списке.

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

Как бы я написал оператор linq, чтобы вытащить это? Или даже лямбда-оператор будет работать. Я действительно не хочу перебирать все записи несколько раз, чтобы найти общие записи.

Ответы [ 2 ]

0 голосов
/ 01 июля 2010

Получает все объекты, местоположение которых находится в списке местоположений:

dataObjects.Where(o => locations.Any(l => l == o.Location));

Если вам нужны более сложные сравнения, вы должны опубликовать структуру участвующих классов, чтобы мы могли дать вам более точный ответ.

0 голосов
/ 01 июля 2010

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

Скажем, у вас есть следующий объект

public class MyObject
{
    public string name{set;get;}
    public string location{set;get;}
    public string value{set;get}
}

и у вас есть коллекция таких объектов, как IEnumerable<MyObject> myObjects;

Вы можете искать в этой коллекции, чтобы получить объект с тем же местоположением:

IEnumerable<MyObject> results = myObjects.Where(mo => mo.location.Contains("targetLocation"));

или вы можете сказать:

var results = from o in myObjects 
              where o.location.Contains("something") 
              select c;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...