C# 从哈希表填充文本框

C# 从哈希表填充文本框,c#,winforms,hashtable,C#,Winforms,Hashtable,我正在使用windows窗体应用程序创建一个议程程序,我正在尝试将文件中的数据加载到哈希表中,并将这些数据显示到文本框中。文本框上的标签是日期,但这些日期的格式为(dd MMMM dddd例如11月30日星期五),并用作哈希表的键值。文件中的日期格式为(dd-MM-yyyy)。显示了文件中的数据示例 2012年7月10日10时30分开始游泳* 2012年11月30日将于15:30开始游泳* 当我加载表单时,数据应该显示在相应的文本框中。例如,必须在文本框下显示“11月30日星期五”(因为它对应于

我正在使用windows窗体应用程序创建一个议程程序,我正在尝试将文件中的数据加载到哈希表中,并将这些数据显示到文本框中。文本框上的标签是日期,但这些日期的格式为(
dd MMMM dddd
例如11月30日星期五),并用作哈希表的键值。文件中的日期格式为(
dd-MM-yyyy
)。显示了文件中的数据示例

2012年7月10日10时30分开始游泳*

2012年11月30日将于15:30开始游泳*

当我加载表单时,数据应该显示在相应的文本框中。例如,必须在文本框下显示“11月30日星期五”(因为它对应于2012年11月30日)下的15:30*去游泳。我能够将数据拆分为键值对,如下代码所示:

StreamReader sr=new StreamReader("Path/ajand.txt");

   string line;

    while ((line = sr.ReadLine()) != null)
    {
      key = line.Substring(0, 10);//gets date
      value = line.Substring(10);//gets string
      hT.Add(key, value);
    }

如何将数据添加到相应的文本框中?

使用Convert.toDateTime(请参见msdn:)将日期转换为所需格式

然后,循环遍历哈希表中的每个条目

foreach(var entry in hashTable)
{
    //todo: convert entry.key (which is the date) to your format
    //      then set the label to the formatted date.
    //      lastly, set the text for the textBox
}

理想情况下,您希望将表单和数据文件中的数据都转换为DateTime实例并进行比较。但是,鉴于表单(标签中)中的日期缺少年份组件,最好将数据文件中的数据转换为DateTime对象,然后提取该日期的字符串格式(格式与表单数据相同)。此时,字符串比较将允许匹配日期。例如:

foreach(DictionaryEntry dataEntry in hT)
{
   //Will throw a FormatException if 'dataEntry.Key' doesn't represent a valid date format
   DateTime keyAsDate = Convert.ToDateTime(dataEntry.Key);

   //This overload of 'ToString' uses CurrentCulture
   string comparisonKey = keyAsDate.ToString("dd MMMM dddd");

   if(formLabel.Text.Equals(comparisonKey, StringComparison.OrdinalIgnoreCase))
   {
       formTextBox.Text = dataEntry.Value;
   }
}

主题是否应该是:从哈希表填充文本框?您是否只处理2012年的日期?我问你是因为在文本框中没有提到日期格式的年份组件。@chamila_c文本框中的日期格式不显示年份,它的格式是(dd-MMMM-dddddd),但文件中的日期显示的年份与dd-MM-yyyy相同。那么你是否有权访问基础日期(即包括年份组件)这是用来填充文本框的,还是您只能访问文本本身(即dd MMMM dddd格式)?@chamila_c我只能访问文本本身,即dd MMMM dddd格式的文本没有基础年份组件。我在
DateTime keyAsDate=Convert.ToDateTime(dataEntry.Key)一行中得到一个错误
说“object不包含key的定义”我不明白为什么.hmmm-可能显式键入哈希表项就可以了-请参阅最新编辑:
foreach(DictionaryEntry dataEntry in hT)
。它仍然会给出类似的错误消息“System.Collections.DictionaryEntry不包含key的定义”…我重新启动了程序,前面的修改
foreach(DictionaryEntry数据项在hT中)
成功了。谢谢。:))哦,错误已经消失了,但是数据根本没有填充。文本框是空的。它应该会起作用,但我不知道为什么它不起作用。还尝试单步执行代码,但无法放置错误。。