Linq选择属性Complex对象

时间:2017-07-21 10:23:24

标签: c# linq lambda

这是对this

的跟进

我的要求稍有变化,因为我有以下对象

ul.nav li.current-menu-item:first-child a,
ul.nav li.current_page_item:first-child a {
    color: #ffffff;
    background: url(../gfx/menu_hover.gif) left top repeat-x;
    border-top-left-radius: 7px !important;     /* added !important here */
    border-bottom-left-radius: 7px !important;
}

尝试根据以下条件选择说明

如果我的CultureValueId为1 //英文

  1. public class TestA { public int PkTestAId { get; set; } public int CultureValueId { get; set; } public string SystemKey { get; set; } public string Description { get; set; } public IEnumerable<TestB> TestBCollection { get; set; } } public class TestB { public int PkTestBId { get; set; } public int FkTestAId { get; set; } public int CultureValueId { get; set; } public string SystemKey { get; set; } public string Description { get; set; } } List<TestA> a = new List<TestA>() { new TestA() { PkTestAId = 1, CultureValueId = 1, // english SystemKey = "lblEmpNumber", Description = "Test A Description", TestBCollection = new List<TestB>() { new TestB() { PkTestBId = 10, FkTestAId = 1, // this must maps to PkTestAId CultureValueId = 1, SystemKey = "lblEmpNumber", Description = "Test B Description" }, new TestB() { PkTestBId = 11, FkTestAId = 1, // this must maps to PkTestAId CultureValueId = 23, SystemKey = "lblEmpNumber", Description = "Test B Second Description" } } }, new TestA() { PkTestAId = 2, CultureValueId = 2, // spanish SystemKey = "lblEmpNumber", Description = "Número de Funcionário:", TestBCollection = new List<TestB>() { new TestB() { PkTestBId = 12, FkTestAId = 2, CultureValueId = 5, SystemKey = "lblEmpNumber", Description = "" } } } }; 中选择说明属性,但是如果有值 TestA TestBPkTestAId == FkTestIDCultureValue == CultureValue
  2. 中选择说明
  3. 如果TestB中的说明为空或为空,请选择TestB说明
  4. 如果我的CultureValueId是2 //西班牙语

    1. TestA中选择说明属性,但是如果有值 TestA TestBPkTestAId == FkTestIDCultureValue == CultureValue 中选择说明 - 与第一个完全相同
    2. 如果TestB中的说明是TestB我需要先查看英文版中是否存在该值(Exact 与第一个条件相同的条件)
    3. 但如果在英语TestB中找不到描述,请使用TestA中的描述,但使用西班牙语(CultureValueId2)
    4. 更新的 这将给出期望的结果

      null or empty

0 个答案:

没有答案