Как найти отдельные значения из определенного индекса общего списка - PullRequest
0 голосов
/ 17 апреля 2019

У меня есть общий список

LinkedList<RelationModel> mylist = new LinkedList<RelationModel>();

Этот список извлекает выходные данные с двумя индексами {0} и {1}. В обоих индексах есть несколько значений. Во время отладки на

{0} - the output is     

Foreign             "Store"       --string
ForeignKeyColumn    "addressId"   --string
Primary             "Address"     --string
PrimaryKeyColumn    "addressId"   --string

{1} - the output is 

Foreign             "Address"     --string
ForeignKeyColumn    "countryId"   --string
Primary             "Country"     --string
PrimaryKeyColumn    "countryId"   --string

Проблема в том, что я должен выбрать разные значения из списка. Например - Здесь, Магазин, Адрес и Страна различны. Как выбрать эти значения в коде C #?

Приведенный ниже код заполняет данные в mylist

using (var ctx = new TestDBEntities())
            {
                var foreginKeyList = ctx.Database
                .SqlQuery<MetdataModel>(" Select  [PKTABLE_NAME], [PKCOLUMN_NAME],[FKTABLE_NAME],[FKCOLUMN_NAME] from GetMetadata")
                .ToList();
                LinkedList<RelationModel> mylist = new LinkedList<RelationModel>();
                for (int i =0; i < foreginKeyList.Count; i++)
                {

                    var ss = foreginKeyList.Where(p => p.FKTABLE_NAME.Equals(foreginKeyList[i].FKTABLE_NAME)).Select(p => new { p.PKTABLE_NAME, p.PKCOLUMN_NAME }).ToList();
                    foreach(var col in ss)
                    {
                        RelationModel gg = new RelationModel();
                        gg.Foreign = foreginKeyList[i].FKTABLE_NAME;
                        gg.ForeignKeyColumn = foreginKeyList[i].FKCOLUMN_NAME;
                        gg.Primary = col.PKTABLE_NAME;
                        gg.PrimaryKeyColumn = col.PKCOLUMN_NAME;
                        mylist.AddLast(gg);

                    }

                }

Мне нужен окончательный список, который будет иметь различные значения, такие как

mylist.[0]- store
mylist.[1]- address
mylist.[2]- country

1 Ответ

0 голосов
/ 17 апреля 2019

Если RelationModel равно

public class RelationModel {
    public string Foriegn;
    public string ForeignKeyColumn;
    public string Primary;
    public string PrimaryKeyColumn;
}

, то вы можете использовать следующее:

var ans = mylist.SelectMany(m => new[] { m.Foriegn, m.Primary }).Distinct().ToList();

Теперь вы можете получить доступ к элементам ans как ans[0], ans[1] и т. д.

...