将IQueryable<object>结果转换为逗号分隔的字符串是一种常见的需求,尤其是在处理数据库查询结果时。以下是一个简单的方法,将IQueryable<object>转换为逗号分隔的字符串:
public static string ConvertToCsv<T>(this IQueryable<T> queryable)
{
var result = new StringBuilder();
var properties = typeof(T).GetProperties();
foreach (var property in properties)
{
result.Append(property.Name);
result.Append(",");
}
result.Remove(result.Length - 1, 1);
result.AppendLine();
foreach (var item in queryable)
{
foreach (var property in properties)
{
result.Append(property.GetValue(item));
result.Append(",");
}
result.Remove(result.Length - 1, 1);
result.AppendLine();
}
return result.ToString();
}
这个方法使用泛型类型T来获取对象的属性,并将属性名称和值添加到结果字符串中。它首先遍历所有属性名称,然后遍历查询结果中的每个对象,将每个对象的属性值添加到结果字符串中。最后,它返回逗号分隔的字符串。
这个方法可以与任何IQueryable<object>一起使用,例如Entity Framework查询结果。例如:
var query = from item in context.Items
select item;
var csv = query.ConvertToCsv();
这将返回一个逗号分隔的字符串,其中包含查询结果中所有对象的属性值。
领取专属 10元无门槛券
手把手带您无忧上云