【问题标题】:Write random numbers to an array of objects [duplicate]将随机数写入对象数组[重复]
【发布时间】:2017-07-06 14:41:11
【问题描述】:

我目前正在开发一个模拟器,它应该模仿某种业务逻辑。 我尝试通过从两个字符串数组中挑选两个随机字符串来创建类Suggestion 的对象。该方法应返回Suggestion 对象的数组。数组长度也是可变的。现在返回的数组应该在控制台中打印出来。

这是我的课Suggestion:

 public class Suggestion
    {
        public Suggestion(string aktenName, string relevanz)
        {
            MAktenName = aktenName;
            MRelevanz = relevanz;
        }

        public string MAktenName { get; private set; }

        public string MRelevanz { get; private set; }
    }

我的其他类包括“逻辑”和主要方法如下所示:

 private static void Main()
        {
            var test = GetSuggestions();

            for (var i = 0; i < test.Length; i++)
            {
                Console.WriteLine(test[i].MAktenName + "-" + test[i].MRelevanz + "%");
            }

            Console.ReadLine();
        }

        public static Suggestion[] GetSuggestions()
        {
            var random = new Random();
            var suggestionsCount = random.Next(1, 10);
            var suggestions = new Suggestion[suggestionsCount];

            string[] names =
            {
                "721/12", "345/93", "478/54", "876/39", "546/27", "481/56", "824/39", "897/51",
                "574/48"
            };
            string[] relevance =
            {
                "10", "20", "30", "40", "50", "60", "70", "80", "90", "100"
            };

            for (var i = 0; i < suggestionsCount; i++)
            {
              
                var sugName = names[new Random().Next(0, names.Length)];
                var sugRelevance = relevance[new Random().Next(0, relevance.Length)];

                suggestions[i] = new Suggestion(sugName, sugRelevance);
            }
            return suggestions;
        }

我的问题是它打印出字符串数组sugNamesugRelevance 的随机组合,并且打印出可变数量的这些,但是Suggestions 类的所有对象都是相同的。 就像我的结果是这样的:

345/93-20%

345/93-20%

345/93-20%

345/93-20%

我认为这与new Random().Next(0, names.Length) 有关,但我不确定。

【问题讨论】:

    标签: c# arrays random


    【解决方案1】:

    代替

    var sugName = names[new Random().Next(0, names.Length)];
    var sugRelevance = relevance[new Random().Next(0, relevance.Length)];
    

    写:

    var sugName = names[random.Next(0, names.Length)];
    var sugRelevance = relevance[random.Next(0, relevance.Length)];
    

    【讨论】:

    • 谢谢,解决了我的问题!
    猜你喜欢
    • 2021-06-24
    • 2017-08-01
    • 1970-01-01
    • 2017-07-09
    • 1970-01-01
    • 2014-05-18
    • 2011-05-21
    • 1970-01-01
    • 2018-02-18
    相关资源
    最近更新 更多