gpt4 book ai didi

c# - 将 List 转换为另一个 List 中所有对象的逗号分隔值列表

转载 作者:行者123 更新时间:2023-11-30 20:45:11 24 4
gpt4 key购买 nike

这个问题与this非常相似答案,但我需要对 List 中的所有对象而不是一个对象执行此操作。

想想锻炼,你可能会写:

Bench Press: 135x10, 185x10, 225x8, 275x5, 315x3

Dumbbell Press: 65x12, 85x12, 95x10, 100x8, 100x8

也就是说,您有一个练习列表,每个练习都有一个组数/次数列表。对于列表中的每个练习,您想将其组数/次数列表转换为上述形式。

类看起来像:

public class Workout
{
public int WorkoutId { get; set; }
public string Name { get; set; }
public List<Activity> Activities { get; set; }
public DateTime Date { get; set; }
}

// Activity is an instance of an exercise,
// i.e., you bench press, dumbbell press, etc... all in one workout
public class Activity
{
public int ActivityId { get; set; }
public Exercise Exercise { get; set; }
public List<Set> Sets { get; set; }
}

// Sets just hold Weight and Reps
public class Set
{
public int SetId { get; set; }
public int Weight { get; set; }
public int Reps { get; set; }
}

因此,对于 Activity 中的每个 Set,我想要 set.Weight + "x"+ set.Reps,并且对于每个练习 中的Activity,我想要:

"the string we just got for set 1, the string we just got for set 2"

根据我之前链接的答案,我想出了这个:

string.Join(",", 
workout.Activities.Select(
activity => activity.Sets.Select(
set => set.Weight.ToString() + "x" + set.Reps.ToString()
)
));

但这会产生:

System.Linq.Enumerable+WhereSelectListIterator2[MyLifts.Models.Set,System.String],System.Linq.Enumerable+WhereSelectListIterator2[MyLifts.Models.Set,System.String],System.Linq.Enumerable+WhereSelectListIterator2[MyLifts.Models.Set,System.String],System.Linq.Enumerable+WhereSelectListIterator2[MyLifts.Models.Set,System.String],System.Linq.Enumerable+WhereSelectListIterator`2[MyLifts.Models.Set,System.String]

最佳答案

您有嵌套选择,内部选择返回 IEnumerable<String>您可以加入,但外部选择返回 IEnumerable<IEnumerable<String>> .

锻炼和锻炼是一回事吗?假设他们正在尝试:

string.Join(",", 
workout.Activities.Select(
activity => activity.Exercise.Name + ": " + String.Join(",",
activity.Sets.Select(
set => set.Weight.ToString() + "x" + set.Reps.ToString()
)
)
));

关于c# - 将 List<T> 转换为另一个 List 中所有对象的逗号分隔值列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28487934/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com