c# - 将字符串数组的元素链接到十进制值
问题描述
所以我有这个元素的字符串数组:
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
。
我怎样才能做到这一点?
如果数组、类或接口无法做到这一点,我愿意接受其他建议......
解决方案
听起来您需要一个自定义类来定义您的架构。您应该定义一个如下所示的类,而不是字符串数组:
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;
推荐阅读
- python - 从列表列表中提取第 n 个元素
- python - Word2Vec doesnt_match 函数引发 Numpy 警告
- xaml - 为什么我不能通过绑定方法设置画布的宽度?
- arrays - 搜索 2 个 postgres array_agg 以找到相同的项目
- laravel - 如何将 laravel 查询加入到来自不同表的调用数据?
- reactjs - 如何在单个 React 组件中正确分派相同的操作两次
- flutter - 在颤动中移动到屏幕时如何初始化和加载数据?
- jenkins - 禁用自动触发构建詹金斯多分支
- appium - Appium 服务器返回“错误:已关闭”,代码为 1
- c# - 为什么 string.Join(" ", new object[] { null, "a", null, "b"}) 会返回 string.Empty?