0

我想获得一个包含该集合中所有项目的集合的特定出现,例如,获取第一次出现的所有值,比如 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;
        }
    }
4

3 回答 3

2

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

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

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

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

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

于 2012-10-25T16:48:58.230 回答
0

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

myResult = result.ToList()[0];

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

foreach (object o in result.ToList())
        {
            if (o.Equals(target))
            {
                myResult = o;
                break;
            }
        }
于 2012-10-25T16:44:30.150 回答
0

尝试这个,

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

ProcessForm4PDFFormFields(myResult, FormId, MainDir3, TemplateFile, i);
于 2012-10-25T16:54:48.807 回答