abdul subhan mohammed Ответов: 2

Как связать два списка в одном gridview в C#


Привет ребята,

У меня есть два списка, я хочу связать их в один gridview в c#.

public class timeSlots
{
   public string StartTimeSlots { get; set; }
        public List<DateTime> StartTimeSlotList
        {
            get { return StartTimeSlots.Split(',').Select(DateTime.Parse).ToList();  }

            set
            {
                StartTimeSlots = StartTimeSlots.Remove(StartTimeSlots.Length - 1);
            }
        }

        public string EndTimeSlots { get; set; }
        public List<DateTime> EndTimeSlotList
        {
            get { return EndTimeSlots.Split(',').Select(DateTime.Parse).ToList();  }

            set
            {
                EndTimeSlots = EndTimeSlots.Remove(EndTimeSlots.Length - 1);
            }
        }
}


Что я уже пробовал:

я хочу связать StartTimeSlotList и EndTimeSlotList в один gridview.

Может ли кто-нибудь мне помочь?


Спасибо

Maciej Los

Не делайте репостов!
http://www.codeproject.com/Questions/1121342/How-to-merge-two-list-as-two-columns-in-Csharp
Вместо этого используйте Улучшить вопрос виджет!

2 Ответов

Рейтинг:
2

Maciej Los

Неправильный подход!

timeSlot класс должен быть определен как:

public class TimeSlot
{
	private DateTime startDT = new DateTime(1901,1,1); //defualt start time
	private DateTime endDT = new DateTime(1901,1,1); //defualt end time
	
	public TimeSlot()
	{
		//default constructor
	}
	
	public TimeSlot(DateTime sDT, DateTime eDT)
	{
		startDT = sDT;
		endDT = eDT;
	}
	
	public DateTime StartTime
	{
		get { return startDT; }
		set { startDT = value; }
	}

	public DateTime EndTime
	{
		get { return endDT; }
		set { endDT = value; }
	}
}

Далее, вы должны создать List<TimeSlot> класс:
List<TimeSlot> timeslots = new List<TimeSlot>();
DateTime dt = DateTime.Now;
//insert sample data 
for (int i=-200;i<0; i+=5)
{
    timeslots.Add(new TimeSlot(dt.AddHours(i), dt.AddHours(i+(i%2==0?1:2))));
}


Окончательно:
DataGridView1.DataSource = timeslots;


Рейтинг:
2

londhess

используйте что-то вроде приведенного ниже

var timeSlots = StartTimeSlots.Join(EndTimeSlots,st => StartTimeSlots.IndexOf(st), et => EndTimeSlots.IndexOf(et), (st, et) => new { newst = st, newet = et }).ToList();