Find common items between two collections, and set values in one collection when matched
It would be better to create a Dictionary&lt;int, Job&gt; of jobs and use it in the foreach loop. Otherwise, you have to parse dataRowView["ID"] field as many times as jobs are available (at worst). If number of jobs is less than 10, it is more performant to iterate the list of jobs instead of using a Dictionary&lt;int, Job&gt;:

//Step 3: Find match, and set the value from dataView to jobs when matched.
    Dictionary&lt;int, Job&gt; jobDict = jobs.ToDictionary(j =&gt; j.Id);

    foreach (DataRowView dataRowView in dataView)
    {
        var id = int.Parse(dataRowView["ID"].ToString());
        Job job;
        if (jobDict.TryGet(id, out job)
            //&amp;&amp; other logic here
         )
        {
            //once matched, it sets the value. This is what I need
            job.DiscountDate = (DateTime) dataRowView["DiscountDate"];
            break;
        }
    }