访问list类的属性



我试图显示字段值内部的值。哪些字段值保存"信息"?和";Error"。一开始我做了一个简单的Console.Writeline(fieldValues),但我很快就知道那只是使用ToString()的List实现,只是简单地打印类型的名称,这不是我想要显示的。然后,我尝试创建一个foreach循环,因为属性FieldLevel是类型<FieldValue>的列表,其中包含字符串value的属性,其中包含"信息";和"Error".

model class:

public class LevelField
{
public string FieldName { get; set; }
public List<FieldValue> FieldValue { get; set; }
}
public class FieldValue
{
public string value { get; set; }
}

in my other class:

var fieldName = "";
List<FieldValue> fieldValues = new();
......
foreach (var y in x.BusinessProcessStep.LogDataSources)
{
fieldName = y.LogDataSource.LogFieldsMapping.LevelField.FieldName;
fieldValues = y.LogDataSource.LogFieldsMapping.LevelField.FieldValue;
}
foreach (var item in fieldValues.FirstOrDefault().value)
{
Console.WriteLine(item);
}

但是,在fieldValues foreach循环中,它只返回字母"I"不是信息和错误。是否有一种特定的方式从列表FieldValue调用属性值?

注意,您需要遍历所有fieldValues列表,而不是像您那样只遍历第一项。

试试这个:

foreach (string item in fieldValues.Select(fv => fv.value))
{
Console.WriteLine(item);
}

或:

foreach (FieldValue item in fieldValues)
{
Console.WriteLine(item.value);
}

或与System.Linq:

fieldValues.ForEach(fv => Console.WriteLine(fv.value));