I have this C# function:
private void BuildHistoryWeek_Students(CLMExplorerHistory record, ref MSAHistoryItem historyItem)
{
    try
    {
        bool bSampleConversationVideo = false;
        if (record.StudentItem1Description == _trans.IC_Video ||
            record.StudentItem1Description == _trans.RV_Video)
        {
            bSampleConversationVideo = true;
        }
        // AYFM - Class 1
        if (historyItem.Classes >= 1)
        {
            historyItem.StudentItems1.Add(
                new MSAHistoryItemStudent
                {
                    Name = record.BibleReadingClass1Name,
                    Study = record.BibleReadingStudy,
                    Type = _transMSA.BibleReading
                });
            if (record.StudentItem1Description != _trans.Video)
            {
                historyItem.StudentItems1.Add(
                    new MSAHistoryItemStudent
                    {
                        Name = record.StudentItem1Class1StudentName,
                        Assistant = record.StudentItem1Class1AssistantName,
                        Study = record.StudentItem1Study,
                        Type = record.StudentItem1Description,
                        SampleConversationVideo = bSampleConversationVideo
                    });
            }
            if (record.StudentItem2Description != string.Empty)
            {
                historyItem.StudentItems1.Add(
                    new MSAHistoryItemStudent
                    {
                        Name = record.StudentItem2Class1StudentName,
                        Assistant = record.StudentItem2Class1AssistantName,
                        Study = record.StudentItem2Study,
                        Type = record.StudentItem2Description
                    });
            }
            if (record.StudentItem3Description != string.Empty)
            {
                historyItem.StudentItems1.Add(
                    new MSAHistoryItemStudent
                    {
                        Name = record.StudentItem3Class1StudentName,
                        Assistant = record.StudentItem3Class1AssistantName,
                        Study = record.StudentItem3Study,
                        Type = record.StudentItem3Description
                    });
            }
            if (record.StudentItem4Description != string.Empty)
            {
                historyItem.StudentItems1.Add(
                    new MSAHistoryItemStudent
                    {
                        Name = record.StudentItem4Class1StudentName,
                        Assistant = record.StudentItem4Class1AssistantName,
                        Study = record.StudentItem4Study,
                        Type = record.StudentItem4Description
                    });
            }
        }
        // AYFM - Class 2
        if (historyItem.Classes >= 2)
        {
            historyItem.StudentItems2.Add(
                new MSAHistoryItemStudent
                {
                    Name = record.BibleReadingClass2Name,
                    Study = record.BibleReadingStudy,
                    Type = _transMSA.BibleReading
                });
            if (record.StudentItem1Description != _trans.Video)
            {
                historyItem.StudentItems2.Add(
                    new MSAHistoryItemStudent
                    {
                        Name = record.StudentItem1Class2StudentName,
                        Assistant = record.StudentItem1Class2AssistantName,
                        Study = record.StudentItem1Study,
                        Type = record.StudentItem1Description,
                        SampleConversationVideo = bSampleConversationVideo
                    });
            }
            if (record.StudentItem2Description != string.Empty)
            {
                historyItem.StudentItems2.Add(
                    new MSAHistoryItemStudent
                    {
                        Name = record.StudentItem2Class2StudentName,
                        Assistant = record.StudentItem2Class2AssistantName,
                        Study = record.StudentItem2Study,
                        Type = record.StudentItem2Description
                    });
            }
            if (record.StudentItem3Description != string.Empty)
            {
                historyItem.StudentItems2.Add(
                    new MSAHistoryItemStudent
                    {
                        Name = record.StudentItem3Class2StudentName,
                        Assistant = record.StudentItem3Class2AssistantName,
                        Study = record.StudentItem3Study,
                        Type = record.StudentItem3Description
                    });
            }
            if (record.StudentItem4Description != string.Empty)
            {
                historyItem.StudentItems2.Add(
                    new MSAHistoryItemStudent
                    {
                        Name = record.StudentItem4Class2StudentName,
                        Assistant = record.StudentItem4Class2AssistantName,
                        Study = record.StudentItem4Study,
                        Type = record.StudentItem4Description
                    });
            }
        }
        // AYFM - Class 3
        if (historyItem.Classes == 3)
        {
            historyItem.StudentItems3.Add(
                new MSAHistoryItemStudent
                {
                    Name = record.BibleReadingClass3Name,
                    Study = record.BibleReadingStudy,
                    Type = _transMSA.BibleReading
                });
            if (record.StudentItem1Description != _trans.Video)
            {
                historyItem.StudentItems3.Add(
                    new MSAHistoryItemStudent
                    {
                        Name = record.StudentItem1Class3StudentName,
                        Assistant = record.StudentItem1Class3AssistantName,
                        Study = record.StudentItem1Study,
                        Type = record.StudentItem1Description,
                        SampleConversationVideo = bSampleConversationVideo
                    });
            }
            if (record.StudentItem2Description != string.Empty)
            {
                historyItem.StudentItems3.Add(
                    new MSAHistoryItemStudent
                    {
                        Name = record.StudentItem2Class3StudentName,
                        Assistant = record.StudentItem2Class3AssistantName,
                        Study = record.StudentItem2Study,
                        Type = record.StudentItem2Description
                    });
            }
            if (record.StudentItem3Description != string.Empty)
            {
                historyItem.StudentItems3.Add(
                    new MSAHistoryItemStudent
                    {
                        Name = record.StudentItem3Class3StudentName,
                        Assistant = record.StudentItem3Class3AssistantName,
                        Study = record.StudentItem3Study,
                        Type = record.StudentItem3Description
                    });
            }
            if (record.StudentItem4Description != string.Empty)
            {
                historyItem.StudentItems3.Add(
                    new MSAHistoryItemStudent
                    {
                        Name = record.StudentItem4Class3StudentName,
                        Assistant = record.StudentItem4Class3AssistantName,
                        Study = record.StudentItem4Study,
                        Type = record.StudentItem4Description
                    });
            }
        }
    }
    catch (System.Exception ex)
    {
        SimpleLog.Log(ex);
    }
}
It is reptative because it is doing the same thing for three "classes". But, each class is in a different variable:
historyItem.StudentItems1
historyItem.StudentItems2
historyItem.StudentItems3
And for each class, the set of record variables changes:
BibleReadingClass1Name
StudentItem1Class1StudentName
StudentItem1Class1AssistantName
StudentItem2Class1StudentName
StudentItem2Class1AssistantName
StudentItem3Class1StudentName
StudentItem3Class1AssistantName
StudentItem4Class1StudentName
StudentItem4Class1AssistantName
The other two classes name Class2 and Class3 respectively. I know I can create a method which is passed all of the properties as paramaters and call the method 3 times. But can I make changes within the method itself (like a lambda) to do this?
 
    