首页 > 解决方案 > 将字符串数组的元素链接到十进制值

问题描述

所以我有这个元素的字符串数组:

string[] words = { "My", "name", "is", "Jack" }; 

我希望这个数组中的每个元素都链接到一个特定的值(十进制)但是每次我按下一个按钮让这个元素出现(在文本中)让我们说在文本框或标签中我希望能够按下第二个按钮更新与元素链接的小数。每个元素都有自己的特定值(我们称之为权重)。我尝试过:

decimal weight1 = 0; 
words[0] = Convert.ToString(weight1); 
label1.Text = Convert.ToString(words[0]);

但它所做的只是将值分配给元素(更改它),我不希望那样。我希望它们显示为文本,但仅链接元素而不更改它,并在背景上更新其链接值。

元素:

"My" 链接到weight1 元素 "name" 链接到weight2, name=> weight3, Jack=> weight4

我怎样才能做到这一点?

如果数组、类或接口无法做到这一点,我愿意接受其他建议......

标签: c#arraysforms

解决方案


听起来您需要一个自定义类来定义您的架构。您应该定义一个如下所示的类,而不是字符串数组:

public class WeightedWord
{
      public WeightedWord(string word, decimal weight)
      {
           Word = word;
           Weight = weight;
      }

      public string Word { get; set; }
      public decimal Weight { get; set; }
}

然后,您将能够为每个单词分配一个单独的权重。

您的数组将如下所示:

WeightedWord[] weightedWords = { new WeightedWord("My", .1), 
                                 new WeightedWord("name", .2),
                                 new WeightedWord("is", .3),
                                 new WeightedWord("Jack", .4) }; 

在您的按钮按下操作中,您可以访问要更新的特定对象。

weightedWords[0].Weight = .7;

推荐阅读