Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用LinQ迭代列表以获得所需的结果 公共类项目详细信息 { 公共列表XAxis{get;set;} 公共列表YAxis{get;set;} 公共列表值{get;set;} } 公共课堂活动 { 公共字符串ActivityName{get;set;} 公共字符串ActivityValue{get;set;} } 公共课堂活动模式 { 公共活动活动{get;set;} 公共四分之一{get;set;} } 公共课季度:I充足 { 公共整数年{get;set;} 公共索引{get;set;} 公共季度起始日期(日期时间日期) { 季度=新季度() { 年=日期。年, 季度指数=1+(日期月-1)/3 }; 返回季度; } 公共字符串GetQuarter(日期时间日期) { 字符串quarty=“Q”+(1+(date.Month-1)/3+“”+date.Year; 返回季度; } 公共覆盖布尔等于(对象其他项) { 季度其他=作为季度的其他项目; if(other==null)返回false; 返回此。等于(其他); } 公共布尔等于(四分之一其他项) { if(otherItem==null)返回false; 返回年份==otherItem.Year&&QuarterIndex==otherItem.QuarterIndex; } 公共覆盖int GetHashCode() { 未经检查 { int hash=23; 散列=(散列*31)+年; 散列=(散列*31)+四分之一索引; 返回散列; } } } 公共类项比较程序:IEqualityComparer { 公共布尔等于(左四分之一、右四分之一) { if(lhs==null | | rhs==null)返回false; 返回lhs.Year==rhs.Year&&lhs.QuarterIndex==rhs.QuarterIndex; } 公共整数GetHashCode(四分之一项) { if(item==null)返回0; 未经检查 { int hash=23; 散列=(散列*31)+项。年; 散列=(散列*31)+item.index; 返回散列; } } } 班级计划 { 静态void Main(字符串[]参数) { ItemDetails ItemDetails=新的ItemDetails() { XAxis=新列表(){“2013年第一季度”、“2013年第二季度”}, YAxis=新列表(){“活动1”,“活动2”}, 值=新列表(){“ActivityType3”,“ActivityType5”} }; List sourceList=新列表() { new ActivityQuarterModel(){Activity=new Activity(){ActivityName=“Activity1”,ActivityValue=“ActivityType3”},Quarter=new Quarter(){QuarterIndex=2,Year=2013}, new ActivityQuarterModel(){Activity=new Activity(){ActivityName=“Activity1”,ActivityValue=“ActivityType5”},Quarter=new Quarter(){QuarterIndex=1,Year=2013}, new ActivityQuarterModel(){Activity=new Activity(){ActivityName=“Activity1”,ActivityValue=“ActivityType3”},Quarter=new Quarter(){QuarterIndex=3,Year=2013}, new ActivityQuarterModel(){Activity=new Activity(){ActivityName=“Activity2”,ActivityValue=“ActivityType3”},Quarter=new Quarter(){QuarterIndex=1,Year=2013}, new ActivityQuarterModel(){Activity=new Activity(){ActivityName=“Activity1”,ActivityValue=“ActivityType5”},Quarter=new Quarter(){QuarterIndex=1,Year=2013}, }; } }_C#_Linq_List - Fatal编程技术网

C# 使用LinQ迭代列表以获得所需的结果 公共类项目详细信息 { 公共列表XAxis{get;set;} 公共列表YAxis{get;set;} 公共列表值{get;set;} } 公共课堂活动 { 公共字符串ActivityName{get;set;} 公共字符串ActivityValue{get;set;} } 公共课堂活动模式 { 公共活动活动{get;set;} 公共四分之一{get;set;} } 公共课季度:I充足 { 公共整数年{get;set;} 公共索引{get;set;} 公共季度起始日期(日期时间日期) { 季度=新季度() { 年=日期。年, 季度指数=1+(日期月-1)/3 }; 返回季度; } 公共字符串GetQuarter(日期时间日期) { 字符串quarty=“Q”+(1+(date.Month-1)/3+“”+date.Year; 返回季度; } 公共覆盖布尔等于(对象其他项) { 季度其他=作为季度的其他项目; if(other==null)返回false; 返回此。等于(其他); } 公共布尔等于(四分之一其他项) { if(otherItem==null)返回false; 返回年份==otherItem.Year&&QuarterIndex==otherItem.QuarterIndex; } 公共覆盖int GetHashCode() { 未经检查 { int hash=23; 散列=(散列*31)+年; 散列=(散列*31)+四分之一索引; 返回散列; } } } 公共类项比较程序:IEqualityComparer { 公共布尔等于(左四分之一、右四分之一) { if(lhs==null | | rhs==null)返回false; 返回lhs.Year==rhs.Year&&lhs.QuarterIndex==rhs.QuarterIndex; } 公共整数GetHashCode(四分之一项) { if(item==null)返回0; 未经检查 { int hash=23; 散列=(散列*31)+项。年; 散列=(散列*31)+item.index; 返回散列; } } } 班级计划 { 静态void Main(字符串[]参数) { ItemDetails ItemDetails=新的ItemDetails() { XAxis=新列表(){“2013年第一季度”、“2013年第二季度”}, YAxis=新列表(){“活动1”,“活动2”}, 值=新列表(){“ActivityType3”,“ActivityType5”} }; List sourceList=新列表() { new ActivityQuarterModel(){Activity=new Activity(){ActivityName=“Activity1”,ActivityValue=“ActivityType3”},Quarter=new Quarter(){QuarterIndex=2,Year=2013}, new ActivityQuarterModel(){Activity=new Activity(){ActivityName=“Activity1”,ActivityValue=“ActivityType5”},Quarter=new Quarter(){QuarterIndex=1,Year=2013}, new ActivityQuarterModel(){Activity=new Activity(){ActivityName=“Activity1”,ActivityValue=“ActivityType3”},Quarter=new Quarter(){QuarterIndex=3,Year=2013}, new ActivityQuarterModel(){Activity=new Activity(){ActivityName=“Activity2”,ActivityValue=“ActivityType3”},Quarter=new Quarter(){QuarterIndex=1,Year=2013}, new ActivityQuarterModel(){Activity=new Activity(){ActivityName=“Activity1”,ActivityValue=“ActivityType5”},Quarter=new Quarter(){QuarterIndex=1,Year=2013}, }; } }

C# 使用LinQ迭代列表以获得所需的结果 公共类项目详细信息 { 公共列表XAxis{get;set;} 公共列表YAxis{get;set;} 公共列表值{get;set;} } 公共课堂活动 { 公共字符串ActivityName{get;set;} 公共字符串ActivityValue{get;set;} } 公共课堂活动模式 { 公共活动活动{get;set;} 公共四分之一{get;set;} } 公共课季度:I充足 { 公共整数年{get;set;} 公共索引{get;set;} 公共季度起始日期(日期时间日期) { 季度=新季度() { 年=日期。年, 季度指数=1+(日期月-1)/3 }; 返回季度; } 公共字符串GetQuarter(日期时间日期) { 字符串quarty=“Q”+(1+(date.Month-1)/3+“”+date.Year; 返回季度; } 公共覆盖布尔等于(对象其他项) { 季度其他=作为季度的其他项目; if(other==null)返回false; 返回此。等于(其他); } 公共布尔等于(四分之一其他项) { if(otherItem==null)返回false; 返回年份==otherItem.Year&&QuarterIndex==otherItem.QuarterIndex; } 公共覆盖int GetHashCode() { 未经检查 { int hash=23; 散列=(散列*31)+年; 散列=(散列*31)+四分之一索引; 返回散列; } } } 公共类项比较程序:IEqualityComparer { 公共布尔等于(左四分之一、右四分之一) { if(lhs==null | | rhs==null)返回false; 返回lhs.Year==rhs.Year&&lhs.QuarterIndex==rhs.QuarterIndex; } 公共整数GetHashCode(四分之一项) { if(item==null)返回0; 未经检查 { int hash=23; 散列=(散列*31)+项。年; 散列=(散列*31)+item.index; 返回散列; } } } 班级计划 { 静态void Main(字符串[]参数) { ItemDetails ItemDetails=新的ItemDetails() { XAxis=新列表(){“2013年第一季度”、“2013年第二季度”}, YAxis=新列表(){“活动1”,“活动2”}, 值=新列表(){“ActivityType3”,“ActivityType5”} }; List sourceList=新列表() { new ActivityQuarterModel(){Activity=new Activity(){ActivityName=“Activity1”,ActivityValue=“ActivityType3”},Quarter=new Quarter(){QuarterIndex=2,Year=2013}, new ActivityQuarterModel(){Activity=new Activity(){ActivityName=“Activity1”,ActivityValue=“ActivityType5”},Quarter=new Quarter(){QuarterIndex=1,Year=2013}, new ActivityQuarterModel(){Activity=new Activity(){ActivityName=“Activity1”,ActivityValue=“ActivityType3”},Quarter=new Quarter(){QuarterIndex=3,Year=2013}, new ActivityQuarterModel(){Activity=new Activity(){ActivityName=“Activity2”,ActivityValue=“ActivityType3”},Quarter=new Quarter(){QuarterIndex=1,Year=2013}, new ActivityQuarterModel(){Activity=new Activity(){ActivityName=“Activity1”,ActivityValue=“ActivityType5”},Quarter=new Quarter(){QuarterIndex=1,Year=2013}, }; } },c#,linq,list,C#,Linq,List,我在ItemDetails中有用于筛选的数据。 需要筛选列表sourceList 如何检索具有季度“2013年第一季度”和活动名称“Activity1”的ActivityValue列表? 应为ActivityValues提供ActivityValues。这里是“活动类型3”,“活动类型5” 您能帮我一下吗?您的itemDetails列表似乎与值无关,根据您的示例,结果是“ActivityType5”和“ActivityType5” 我不确定我是否理解正确,但这就是你要找的吗 var activi

我在ItemDetails中有用于筛选的数据。 需要筛选列表sourceList

如何检索具有季度“2013年第一季度”和活动名称“Activity1”的ActivityValue列表? 应为ActivityValues提供ActivityValues。这里是“活动类型3”,“活动类型5”


您能帮我一下吗?

您的itemDetails列表似乎与值无关,根据您的示例,结果是“ActivityType5”和“ActivityType5”


我不确定我是否理解正确,但这就是你要找的吗

var activityValues = (from aqm in sourceList
                      where (aqm.Activity.ActivityName == "Activity1" &&
                             (aqm.Quarter.QuarterIndex == 1 && aqm.Quarter.Year == 2013)) // Made the assumption that "Q1 2013" is QuarterIndex = 1 and Year = 2013
                      select aqm.Activity.ActivityValue).ToList();

到目前为止,您有什么?我无法在这里获取linq的逻辑。如何检索目标活动值列表中存在的活动值?我不确定您的意思,因为上面的查询将返回存储在activity.ActivityValue中的字符串值。i、 e.“活动类型5”
var activityValues = (from aqm in sourceList
                      where (aqm.Activity.ActivityName == "Activity1" &&
                             (aqm.Quarter.QuarterIndex == 1 && aqm.Quarter.Year == 2013)) // Made the assumption that "Q1 2013" is QuarterIndex = 1 and Year = 2013
                      select aqm.Activity.ActivityValue).ToList();
var results = sourceList.Where(a => a.Quarter.QuarterIndex.Equals(1) 
    && a.Quarter.Year.Equals(2013) 
    && a.Activity.ActivityName.Equals("Activity1") 
    && (a.Activity.ActivityValue.Equals("ActivityType3") || a.Activity.ActivityValue.Equals("ActivityType5")));