检查List的元素是否等于输入

时间:2020-04-15 13:24:14

标签: c#

namespace OpenXMLSample
{
    public class Datause
    {
        List<Wsdata> data = new List<Wsdata>();

        public IReadOnlyCollection<Wsdata> Readonlydata
        {
            get
            {
                return data.AsReadOnly();
            }
        }


        public void Dataoutput(DateTime dateinput,int x)
        {//mainde x e input gircen unutma 


            while (true)
            {
                x = 1;
                Console.WriteLine("please select:\ninput a date:1 \nclose:2");
                x = Convert.ToInt32(Console.ReadLine());

                if (x == 1)
                {
                    Console.WriteLine("Enter a date in dd/mm/yyyy format:");
                    DateTime.TryParse(Console.ReadLine(),out dateinput);

                    //date ve Dates farki bak
                    for (int i = 0; i < data.Count; i++)
                    {
                        if (data[i].Dates.Equals(dateinput))
                        {
                            Console.WriteLine("Date:", data[i].Dates);
                            Console.WriteLine("Dolar:", data[i].Dolar);
                            Console.WriteLine("Euro:", data[i].Euro);
                        }
                    }

                    //devam falan bak 
                    continue;
                }
                else if (x == 2)
                    break;
                else
                    Console.WriteLine("ERROR!, please wtrite 1 or 2");
                    break;
            }
        }   
    }
}

我的问题是if(data[i].Dates.Equals(dateinput))块没有运行。此外,它不会执行i++-循环的for部分。

有人知道为什么吗?

1 个答案:

答案 0 :(得分:0)

DateTime对象是日期和时间的组合对象。似乎您正在忽略此处的时间段。如果您的data[i].Dates也是DateTime对象,则可以编写if(data[i].Dates.Date.Equals(dateinput.Date))

但是请确保data[i].Dates不是名称所指示的日期列表/数组。如果是这样,则需要嵌套另一个循环。