-2

linqに関する1つの疑問を解消する必要があります

public List<SelectListItem> GetAttributeName() 
{ 
   var attri = (from z in _entities.Attributes 
                select z).AsEnumerable()
               .Select(z => new SelectListItem { 
       Text = z.AttributeName + " (" + z.AttributeType.AttributeTypeCode + ")", 
       Value = z.AttributeID.ToString() 
               }); 

  return attri.ToList(); 
}

この行に

Text = z.AttributeName + " (" + z.AttributeType.AttributeTypeCode + ")",

出力は次のようになります。

abcd (efgh)
ijkl(mnop)
qrst(uvwx)

しかし、私は出力が必要です

abcd
ijkl
qrst
efgh
mnop
uvwx

それを達成する方法..?

4

2 に答える 2

3
public List<SelectListItem> GetAttributeName() 
{ 
   return _entities.Attributes
                   .Select(a => new SelectListItem {
                         Text = a.AttributeName,
                         Value = a.AttributeID.ToString() })
                   .Concat(_entities.Attributes.AsEnumerable()
                                   .Select(a => new SelectListItem {
                         Text = a.AttributeType.AttributeTypeCode.ToString(),
                         Value = a.AttributeID.ToString() })
                   .ToList();
}

または、データベースへの単一のクエリで(前のサンプルはデータベースを2回クエリします):

public List<SelectListItem> GetAttributeName() 
{ 
   var attributes = _entities.Attributes
                             .Select(a => new { 
                                  a.AttributeName,
                                  a.AttributeType.AttributeTypeCode,
                                  a.AttributeID
                             }).ToList();

   return attributes.Select(a => new SelectListItem {
                         Text = a.AttributeName,
                         Value = a.AttributeID.ToString() })
                    .Concat(attributes.Select(a => new SelectListItem {
                         Text = a.AttributeTypeCode.ToString(),
                         Value = a.AttributeID.ToString() })
                    .ToList();
}
于 2013-03-26T06:30:31.240 に答える
0

このクエリを使用して、値を完全に取得しました。

var attributes = _entities.Attributes.ToList().Select(a => new SelectListItem
                    {
                        Text = a.AttributeName,
                        Value = a.AttributeID.ToString()
                    }).Concat(_entities.AttributeTypes.ToList().Select(a => new SelectListItem
                    {
                        Text = a.AttributeTypeCode,
                        Value = a.AttributeTypeID.ToString()
                    }).Distinct().ToList());

                    return attributes.ToList();
于 2013-03-26T07:21:30.327 に答える