Search code examples
c#listlinqc#-4.0linq-to-entities

Combining 3 list into 1 LINQ Query C#


Im new to Programming and I was wondering is it possible to join 3 different table on their index's into one query result. Or if joining using LINQ isn't an option can I create one new list the consists of the data of 3 lists.

(Ps. the contents of the list will be entered by the user and the amount of items can very from run to run but the amount of items in the list will always be the same)

These are the 3 lists:

List<string> SelfStudyModuleName = new List<string>();

public List<double> SelfStudySesionHours = new List<double>();
public List<DateTime> SelfStudySesiondate = new List<DateTime>();

Sample data of each list:

SelfStudyModuleName.Add("Prog");
SelfStudyModuleName.Add("Cloud");
SelfStudyModuleName.Add("Database");
SelfStudyModuleName.Add("Geo");

SelfStudySesionHours.Add(2);
SelfStudySesionHours.Add(5);
SelfStudySesionHours.Add(3);
SelfStudySesionHours.Add(6);

SelfStudySesiondate[0]=2021/12/01;
SelfStudySesiondate[1]=2021/12/02;
SelfStudySesiondate[2]=2021/12/03;
SelfStudySesiondate[3]=2021/12/04;

Sample of the desired out come:

2021/12/01  Prog       2
2021/12/02  Cloud      5
2021/12/03  DataBase   3
2021/12/04  Geo        6

Solution

  • try this

    var result = new List<SelfStudy>();
    
        for (var i = 0; i < SelfStudyModuleName.Count; i++)
        {
            result.Add(new SelfStudy
            {
                SelfStudyModuleName = SelfStudyModuleName[i],
                SelfStudySesionHours = SelfStudySesionHours[i],
                SelfStudySesiondate = SelfStudySesiondate[i]
            });
        }
    }
    

    class

    public class SelfStudy
    {
        public DateTime SelfStudySesiondate { get; set; }
        public string SelfStudyModuleName { get; set; }
        public double SelfStudySesionHours { get; set; }
        
    }
    

    and add SelfStudySesiondate0 for your init

    public string[] SelfStudySesiondate0 = new string[4];
    
        SelfStudySesiondate0[0] = "2021 / 12 / 01";
        SelfStudySesiondate0[1] = "2021 / 12 / 02";
        SelfStudySesiondate0[2] = "2021 / 12 / 03";
        SelfStudySesiondate0[3] = "2021 / 12 / 04";
        
        SelfStudySesiondate=SelfStudySesiondate0.Select(i=> Convert.ToDateTime( i)).ToList();