에 Comments_Date
(31/12/2014 01:10:11 PM
의 형식으로되어 있음)이라는 열이있는 dataGridView_flaggedComments
이 있고, 동일한 날짜가있는 경우 날짜 부분을 comboBox_stockDates
에 추가합니다. 예 31/12/2014
, 나는 한번만 comboBox_stockDates
에 나타나기를 원합니다.콤보 상자에 표시 할 때만
내 코드는 다음과 같습니다. 각 행의 시간은 모두 &이지만 날짜 전용 부분은 차지하지 않습니다. 누구든지 내 코드의 어느 부분을 수정해야하는지 지적 할 수 있습니까? 아니면 지침이 있다면 좋을 것입니다. 비슷한 질문을 간과한다면 사과드립니다. 고마워요!
private void PopulateStockDatesIndex()
{
comboBox_stockDates.Items.Clear();
comboBox_stockDates.Items.Add("Choose to Filter");
comboBox_stockDates.FormatString = "dd-MM-yyyy";
DataView dataview_filterDate = (DataView)(dataGridView_flaggedComments.DataSource);
foreach (DataRowView rowView in dataview_filterDate)
{
DataRow row = rowView.Row;
for (int i = 0; i < dataGridView_flaggedComments.Rows.Count - 1; i++)
{
if (dataGridView_flaggedComments.Rows[i].Cells["Comments_Date"].Value.ToString() != "")
{
if (!comboBox_stockDates.Items.Contains(row[1].ToString()))
{
comboBox_stockDates.Items.Add(row[1].ToString());
}
comboBox_stockDates.SelectedIndex = 0;
}
}
}
}
2 버전 :
private void PopulateStockDatesIndex()
{
comboBox_stockDates.Items.Clear();
comboBox_stockDates.Items.Add("Choose to Filter");
comboBox_stockDates.FormatString = "dd-MM-yyyy";
foreach (DataGridViewRow row in dataGridView_flaggedComments.Rows)
{
for (int i = 0; i < dataGridView_flaggedComments.Rows.Count - 1; i++)
{
if (dataGridView_flaggedComments.Rows[i].Cells["Comments_Date"].Value.ToString() != "")
{
string date = row.Field<DateTime>(1).ToString("dd-MM-yyyy");
if (!comboBox_stockDates.Items.Contains(date))
{
comboBox_stockDates.Items.Add(date);
}
comboBox_stockDates.SelectedIndex = 0;
}
}
}
}
안녕하세요 팀이 지적 주셔서 대단히 감사합니다 :
당신은 또한 또한 원하는 경우 날짜를 정렬
LINQ
를 사용할 수 있습니다. 나는 새로운 것을 배웠다! :)) 그것은 작동합니다. 고맙습니다! :) – Shyuan@Shyuan : 다른 접근법을 보여주기 위해 내 대답을 편집했음을 유의하십시오. 'using System.Linq'을 추가해야합니다 (LINQ에 익숙하지 않은 경우). –
알겠습니다. 'if' 문보다는 LINQ를하는 것이 좋겠습니까? 저는 LINQ에 대해 여러 번 들었습니다. LINQ가 장점을 가지고있는 것처럼 보이지만, 프로그래밍에 상당히 초보자이기 때문에 익숙하지 않습니다. – Shyuan