C#| Linq |亚音速 - Class对象
下面我有这个类/对象:C#| Linq |亚音速 - Class对象
public class Person
{
public string FirstName;
public string MI;
public string LastName;
}
Person p=new Person();
p.FirstName = "Jeff";
p.MI = "A";
p.LastName = "Price";
有没有建在LINQ或C#或亚音速的这个?:
string myString = "FirstName=\"Jeff\" p.MI=\"A\" p.LastName=\"Price\"";
,这将创建一个输出
看来你需要ToString
超载Person
。此外,不要公开公众这样的字段。使用properties。
public class Person
{
public string FirstName { get; set; }
public string MI { get; set; }
public string LastName { get; set; }
public override string ToString()
{
return "FirstName=\"" + FirstName + "\" p.MI=\"" + MI + "\" p.LastName=\"" + LastName + "\"";
}
}
(编辑)
这是你的请求(但它需要的属性):
public static class ObjectPrettyPrint
{
public static string ToString(object obj)
{
Type type = obj.GetType();
PropertyInfo[] props = type.GetProperties();
StringBuilder sb = new StringBuilder();
foreach (var prop in props)
{
sb.Append(prop.Name);
sb.Append("=\"");
sb.Append(prop.GetValue(obj, null));
sb.Append("\" ");
}
return sb.ToString();
}
}
用法:
Console.WriteLine(ObjectPrettyPrint.ToString(new Person { FirstName, = "A", MI = "B", LastName = "C" }));
那么,作为LINQ和C#,不是默认的。
但是,在Person类中,您可以重写ToString()事件来为您执行此操作。
public override string ToString()
{
return string.Format("p.Firstname={0} p.MI={1} p.LastName={2}", FirstName, MI, LastName);
}
然后你只需调用它,如下所示:
string myString = p.ToString();
,这将给你你正在寻找的输出。
我是一个懒惰的人,与上面的布鲁诺一样。我正在寻找一些反思 – 2009-08-07 09:29:38
反思?为什么在这个世界上你会想要这样做,如果这一切只是一个简单的覆盖? – 2009-08-07 09:36:18
我只是在这里推动极限,以及你和Brunos的想法是简单而直接的,这就是为什么我已经在等待一些更多的答案= = – 2009-08-07 09:40:48
不错@bruno,但仍在等待更多输入 – 2009-08-07 09:25:03
查看最新的答案。 – 2009-08-07 09:47:25
y,现在正在尝试... – 2009-08-07 09:58:12