在列表中获取特定项目

时间:2012-10-25 16:36:23

标签: c# entity-framework-5 generic-collections

我希望获得具有该集合中所有项目的集合的特定出现,例如,获取第一次出现的所有值,例如3次出现

如果我有以下代码,我将如何实现这一目标?如果i等于1,我只希望第一次出现的集合只传递给我的ProcessForm4PDFFormFields方法而不是整个集合。

因此,参数“myResult”只包含根据“i”传递的一个事件。

public void GetForm4Results(string FormId, int LoanId, string MainDir3, string TemplateFile, Int16 i)
    {
        try
        {
            using (VisionEntities DbContext = new VisionEntities())
            {
                DbContext.Configuration.LazyLoadingEnabled = false;
                DbContext.Database.Connection.Open();

                int? LoanIdTmp = LoanId;

                ObjectResult<SelectForm4_Result> result = DbContext.SelectForm4(8900, LoanId);

                List<SelectForm4_Result> myResult = new List<SelectForm4_Result>();

                myResult = result.ToList();

                ProcessForm4PDFFormFields(myResult, FormId, MainDir3, TemplateFile, i);
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

3 个答案:

答案 0 :(得分:2)

所以你说你希望myResult包含结果中的第一个i个对象?

myResult = result.Take(i).ToList();

或者,如果您希望myResult仅包含结果中的i对象,那么它将是......

myResult = new List<SelectForm4_Result>() { result.ElementAt(i) };

来源:http://msdn.microsoft.com/en-us/library/bb739113.aspx

答案 1 :(得分:0)

也许我不理解这个问题,但是如果你只是想要列表中的第一项,你可以简单地做到

myResult = result.ToList()[0];

或者如果列表包含很多不同的东西

foreach (object o in result.ToList())
        {
            if (o.Equals(target))
            {
                myResult = o;
                break;
            }
        }

答案 2 :(得分:0)

试试这个,

myResult = i == 1 ? new List<PDFConverterModel.SelectForm4_Result>(result.Take(i)) : result.Take(i);

ProcessForm4PDFFormFields(myResult, FormId, MainDir3, TemplateFile, i);