Использование LINQ для возврата списка из сравнения двух списков, одно из свойств со значениями по умолчанию - PullRequest
0 голосов
/ 01 февраля 2011

Я определил свои свойства StateRegions со значениями по умолчанию, например:

 public string Vermont
        {
            get
            {
                return string.IsNullOrEmpty(_region) ? "NorthEast" : _region;
            }

            set { _region = value; }
        }

        public string NewHampshire
        {
            get
            {
                return string.IsNullOrEmpty(_region) ? "NorthEast" : _region;
            }

            set { _region = value; }
        }

        public string Massachusetts
        {
            get
            {
                return string.IsNullOrEmpty(_region) ? "NorthEast" : _region;
            }

            set { _region = value; }
        }

        public string RhodeIsland
        {
            get
            {
                return string.IsNullOrEmpty(_region) ? "NorthEast" : _region;
            }

            set { _region = value; }
        }

        public string NewYork
        {
            get
            {
                return string.IsNullOrEmpty(_region) ? "NorthEast" : _region;
            }

            set { _region = value; }
        }

        public string Pennsylvania
        {
            get
            {
                return string.IsNullOrEmpty(_region) ? "NorthEast" : _region;
            }

            set { _region = value; }
        }

Теперь я хочу построить список регионов на основе состояний в БД.Это основной код / ​​псевдокод:

       // 1) What states have customers?
        List<string> states = GetStatesHavingCustomers();

        // 2) What are the regions that correspond to US States?
        List<StateRegions> regions = new List<StateRegions>();


        // Lets get the get the states in the DB and 
        // put the corresponding regions in a list

Есть идеи, как это сделать в LINQ?

1 Ответ

0 голосов
/ 02 февраля 2011

Я не совсем понимаю свойства строки stateRegion или их назначение.Если бы вы могли заменить их словарем, у вас не было бы проблем с реализацией этого.

// assuming this returns a List<string> containing state names such as "Vermont"
var states = GetStatesHavingCustomers(); 

var stateRegions = new Dictionary<string, string>();
stateRegions["Vermont"] = "NorthEast";
stateRegions["Massacheusetts"] = "NorthEast";
//etc..

// Returns an IEnumerable<string>, with distinct entries
var dbRegions = (from entry in stateRegions where states.Contains( entry.Key ) select entry.Value).Distinct();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...