微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在列表中附加值而不更改以前的值

如何解决如何在列表中附加值而不更改以前的值

我在C#中上课-

public class Availability
{
  public ushort RegionId {get;set;}
}

然后,我有一个方法GetlistofClassesAsPerIterations(Availability xiAvailability)

方法中有List,我想在其中附加RegionId的不同值。

例如。列表中前100个元素的RegionId = 1500,后100个元素的RegionId = 1400

但是发生的是,当我在RegionId = 1500的列表中添加前100个元素,然后尝试在RegionId = 1400的列表中添加下100个元素时,List中的所有项目都变成了RegionId = 1400。>

我已经为它写了代码-

    var lstAvailability = List<Availability>
    for (int i = 0; i < 100; i++)
    {
      xiAvailability.RegionId = 1500;
      lstAvailability.Add(xiAvailability);
    }
    for (int i = 0; i < 100; i++)
    {
      xiAvailability.RegionId = 1400;
      lstAvailability.Add(xiAvailability);
    }

在这里,我可以看到RegionId为1400的所有200个元素。 但是相反,我期望前100个是1500,接下来的100是1400。

还有什么选择?

解决方法

这是因为要在列表中放置200个对同一对象的引用。如果要有200个不同的对象,则需要执行以下操作:

var lstAvailability = new List<Availability>();

        for (int i = 0; i < 200; i++)
        {
            var xiAvailability = new Availability();

            if (i < 100)
                xiAvailability.RegionId = 1400;
            else
                xiAvailability.RegionId = 1500;

            lstAvailability.Add(xiAvailability);
        }

如果您需要对2个对象有100个引用,请执行此操作

        var lstAvailability = new List<Availability>();

        var xiAvailability = new Availability() { RegionId=1400 };
        for (int i = 0; i < 200; i++)
        {                
            if (i == 100)
                xiAvailability = new Availability() { RegionId = 1500 };

            lstAvailability.Add(xiAvailability);
        }
,

列表中的对象是对实际对象的引用。因此,您会看到RegionId的最新值为1400。

您可以尝试以下

var xiAvailability1500 = new Availability();
xiAvailability1500.RegionId = 1500;
var xiAvailability1400 = new Availability();
xiAvailability1400.RegionId = 1400;

var lstAvailability = List<Availability>();
for (int i = 0; i < 200; i++)
{
    if (i < 100)
        lstAvailability.Add(xiAvailability1500);
    else
        lstAvailability.Add(xiAvailability1400);
}
,

这是另一种替代方法:

<?php
    //Enter your code here,enjoy!

$vehicles = [
'AAA1234','BBB2345','CCC5432','notValid33333','notValid212312'
];

$matches=[];

foreach($vehicles as $v){
   preg_match('/[A-Z][A-Z][A-Z][\d][\d][\d]/',$v,$matches[]);
}

print_r($matches);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。