C# LINQ-按对象分组以创建字符串
所以我有一个叫做Version的对象 它包含一个州列表和一个日期列表 我想首先:C# LINQ-按对象分组以创建字符串,c#,linq,C#,Linq,所以我有一个叫做Version的对象 它包含一个州列表和一个日期列表 我想首先: 按状态分组,并创建所有状态的字符串(逗号分隔) 按日期分组,并创建所有日期的字符串(逗号分隔) 以下是我尝试过的: Date = Version.States.GroupBy(v => v.Date).Select(vh => vh.ToString()).ToString(), State = Version.States.GroupBy(s => s.State).Select(st =>
Date = Version.States.GroupBy(v => v.Date).Select(vh => vh.ToString()).ToString(),
State = Version.States.GroupBy(s => s.State).Select(st => st.ToString()).ToString()
有人能帮我吗?你可以使用:
您不需要使用
GroupBy
,您可以使用Distinct
来获得更高效的独特项目。然后可以使用String.Join
构建字符串:
var uniqueStates = Version.States.Select(vs => vs.State).Distinct();
var uniqueDates = Version.Dates.Select(vd => vd.Date).Distinct();
string commaSeparatedStates = String.Join(",", uniqueStates);
string commaSeparatedDates = String.Join(",", uniqueDates);
你需要使用
string。加入试试这个
var Dates = string.Join(",",Version.States.GroupBy(v => v.Date).Select(vh => vh.ToString()));
var States = string.Join(",",Version.States.GroupBy(s => s.State).Select(st => st.ToString()));
试试这个:
var states = Version.States.Aggregate(string.Empty, (c, state) => c + state.ToString() + ",").TrimEnd(new []{','});
var dates = Version.Dates.Aggregate(string.Empty, (c, date) => c + date.ToString() + ",").TrimEnd(new []{','});
什么是状态
和日期
,这些是其他类吗?这是状态:公共虚拟IList状态{get{return{u STATES;}集{u STATES=value;}}然后状态有以下内容:公共虚拟状态状态{get;set;}公共虚拟日期时间偏移量SDate{get;set;}但是.TrimEnd(new[]{',})仍然在末尾留下逗号?
var states = Version.States.Aggregate(string.Empty, (c, state) => c + state.ToString() + ",").TrimEnd(new []{','});
var dates = Version.Dates.Aggregate(string.Empty, (c, date) => c + date.ToString() + ",").TrimEnd(new []{','});