联系人议程 [英] Agenda of Contacts
问题描述
你好,
我必须制定联系人议程。我已将数据保存在DataGridView中。它包含姓名,姓氏,电话号码和
出生日期。如何使用线程和按钮找到我在DataGridView中保存的当天生日的所有联系人?
先谢谢你。
推荐答案
你好,
正确的启动方式是将数据加载到List< T>中。或者DataTable,在这种情况下,我在List< T>中模拟了数据。许多开发人员认为通过DataGridView.Rows.Add加载数据,但这不正确,设置一个DataSource,如下所示。
The correct way to start is to load data into a List<T> or a DataTable, in this case I have mocked up data in a List<T>. Many developers think to load data via DataGridView.Rows.Add but that is not proper, setup a DataSource as I have done below.
public class Item
{
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTime BirthDate { get; set; }
}
模拟数据在表单加载中设置为DataGridView。 Button1点击事件显示如何获取今天的出生日期。
Mocked data is set to the DataGridView in form load. Button1 click event shows how to get birth dates for today.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
var itemList = new List<Item>()
{
new Item { FirstName = "Anne", LastName = "Smith", BirthDate = DateTime.Parse("5/1/2019") },
new Item { FirstName = "Bob", LastName = "Jones", BirthDate = DateTime.Parse("5/2/2019") },
new Item { FirstName = "Cathy", LastName = "Adams", BirthDate = DateTime.Parse("5/3/2019") },
new Item { FirstName = "Dan", LastName = "Gallagher", BirthDate = DateTime.Parse("5/4/2019") },
new Item { FirstName = "Ed", LastName = "White", BirthDate = DateTime.Parse("5/5/2019") },
new Item { FirstName = "Frank", LastName = "Lebow", BirthDate = DateTime.Parse("5/10/2019") },
new Item { FirstName = "George", LastName = "Henderson", BirthDate = DateTime.Parse("5/7/2019") },
new Item { FirstName = "Hank", LastName = "Bellow", BirthDate = DateTime.Parse("5/8/2019") },
new Item { FirstName = "Mary", LastName = "Lily", BirthDate = DateTime.Parse("5/9/2019") },
new Item { FirstName = "Jane", LastName = "Houser", BirthDate = DateTime.Parse("5/10/2019") },
new Item { FirstName = "Ken", LastName = "Hicks", BirthDate = DateTime.Parse("5/11/2019") },
new Item { FirstName = "Larry", LastName = "Payne", BirthDate = DateTime.Parse("5/12/2019") }
};
DataGridView1.DataSource = itemList;
}
private void button1_Click(object sender, EventArgs e)
{
var itemList = (List<Item>)DataGridView1.DataSource;
var results = itemList.Where((item) => item.BirthDate.Date == DateTime.Now.Date).ToList();
if (results.Count > 0)
{
foreach (Item item in results)
{
Console.WriteLine(
" {item.FirstName} {item.LastName}");
}
}
其他
{
Console.WriteLine("今天没有生日");
}
}
}
}
"{item.FirstName} {item.LastName}"); } } else { Console.WriteLine("No birthdays today"); } } } }
在上述情况下,今天5月10日有两天,明天1.
In the case above there are two both days for today 5/10, tomorrow 1.
这篇关于联系人议程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!