Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更新列表<&燃气轮机;具有以前项目值的项目_C#_List_Lambda_Visual Studio 2013 - Fatal编程技术网

C# 更新列表<&燃气轮机;具有以前项目值的项目

C# 更新列表<&燃气轮机;具有以前项目值的项目,c#,list,lambda,visual-studio-2013,C#,List,Lambda,Visual Studio 2013,假设我有这样一个数据联系人: [DataContract] public struct tblTesters { [DataMember] public string ID; [DataMember] public string Value1; [DataMember] public string Value2; } 我用上面的DataContract填充了一个列表。我现在有一份清单。如果列表中的任何“Value1”为null

假设我有这样一个数据联系人:

[DataContract]
public struct tblTesters
{
    [DataMember]
    public string ID;

    [DataMember]
    public string Value1;

    [DataMember]
    public string Value2;        
}
我用上面的DataContract填充了一个列表。我现在有一份清单。如果列表中的任何“Value1”为null或为空,则应采用列表中前一个“Value1”项的值。更新后,订单应保持不变


如何用前面的items值更新null或空项的值

可能使用简单for循环?:)

for(int i=1;i
用于(i=0;i
您可以使用一个属性并在setter中写入该逻辑。您必须使用常规列表还是自定义列表是一个选项?我更愿意远离简单的for循环,因为“真实世界”中的数据非常大这个问题的上下文。@BossRoss使用linq将比这个简单的for花费更长的时间。@BossRoss:简单循环是最快的方法。
for (int i = 1; i < myList.Count; i++)
{
   myList[i].Value1 =  myList[i].Value1 ?? myList[i-1].Value1;
}
for( i=0; i < headerList.size();i++){   
    if(headerList.get(i).getPurchaseOrdNo()==null){
        headerList.get(i).setPurchaseOrdNo(headerList.get(i-1).getPurchaseOrdNo()); 
    }
}