C# 将列表对象的值转换为字符串

C# 将列表对象的值转换为字符串,c#,linq,C#,Linq,我有一个对象列表,模型是: public class Rule { public bool IsValid { get; set; } public string RuleName { get; set; } public string Description { get; set; } } 要从规则列表中获取RuleName和IsValid的值,我执行了以下操作: string.Join(", ", list.Select(rule=> new { rule.R

我有一个对象列表,模型是:

public class Rule
{
    public bool IsValid { get; set; }
    public string RuleName { get; set; }
    public string Description { get; set; }
}
要从规则列表中获取RuleName和IsValid的值,我执行了以下操作:

string.Join(", ", list.Select(rule=> new { rule.RuleName, rule.IsValid }))
当前输出采用以下格式:

{ RuleName = name1, IsValid = True}, { RuleName = name2, IsValid = False }
如何在不使用循环的情况下将其转换为与以下类似的格式

name1 is True, name2 is False

使用
字符串很简单。连接
可枚举。选择
和字符串插值(C#6):


循环有什么不好?您可以使用linq实现,但它仍然在内部使用循环。您可以在select as string.Join(“,”,list.select(规则=>string.format(“{0}是{1}”,规则.RuleName,规则.IsValid.ToString()))中使用string.format;
string.Join(", ", list.Select(r=> $"{r.RuleName} is {r.IsValid}"));