1

我的类库中有一个列表集合,它使用 sql 数据读取器返回家庭详细信息列表

public class Dataops
   {
      public List<Details> getFamilyMembers(int id)
       {
          some of the database code..

          List<Details> fammemdetails = new List<Details>();
          Details fammember;

          while (reader.Read())    
           {   
            fammemdetails = new Details((
            reader.GetString(reader.GetOrdinal("PHOTO")));

            fammemdetails.add(fammember);
            }   
              return fammemdetails;
          }
        }

因此,我将 dll 引用到我的项目中,并希望将图像绑定到我的数据读取器值之一。

我的项目

DataOps ops = new DataOps();

myimage.ImageUrl = ??? (how do i access the list collections return image value here?

我能够像这样将数据源绑定到整个方法

dropdownlistFamily.DataSource = mdb.GetFamilyMembers(id);

但无法弄清楚如何从那里获取单个值

4

3 回答 3

3

您可以使用First/ FirstOrDefaultSingle/SingleOrDefault根据您的要求。这将为您提供列表中的单个项目,您可以访问其ImageUrl属性。

var item = mdb.GetFamilyMembers(id).FirstOrDefault();
if(item != null)
    myimage.ImageUrl = item.ImageUrlProperty;

如果您想根据条件从列表中获取某些特定对象,那么您可以执行以下操作:

var item = mdb.GetFamilyMembers(id).FirstOrDefault(r=> r.ID == someID);

您可能会看到:LINQ Single vs SingleOrDefault vs First vs FirstOrDefault

于 2013-10-03T17:46:41.370 回答
2

用于index访问集合中的特定记录。您需要确保该元素存在于您在索引器中给出的索引处,否则您将获得异常。它是基于零的索引,因此第一个元素的索引为零

var familyMembers =  mdb.GetFamilyMembers(id);
if(familyMembers.Count > 0)
    myimage.ImageUrl = familyMembers[0].ImageURLProperty;
于 2013-10-03T17:46:59.797 回答
2

您可以使用FirstOrDefaultSingleOrDefault。或者指定一个谓词并使用Where.

var firstValue = ops.getFamilyMembers(1).FirstOrDefault();
于 2013-10-03T17:47:13.423 回答