我的LINQ查询能否生成唯一SampleNumber?附代码与LINQPad输出
关于LINQ查询生成唯一SampleNumber的问题
我正在给C# WinForms应用编写LINQ查询,使用LINQPad的Dump()方法查看输出,但对该方法的结果解读及底层运行逻辑存在困惑。我的预期目标是每个SampleNumber对应一组SampleData——SampleData从数据库取出时为逗号分隔的字符串。我知道当前命名不够规范,会在数据输出正常后调整。
初始查询代码
var thinthroughoutQuery = (from a in ThicknessBlobs join b in SummaryDataItems on a.SampleNumber equals b.SampleNumber where (a.Source == "Thickness[0,0]") && b.TopBottomStatusFK == 3 orderby a.PKId descending select a).Take(1000).ToList();
尝试的拆分、分组并解析的查询代码
var intThinThroughoutQuery = thinthroughoutQuery.Select(row => new { SampleNumber = row.SampleNumber, Value = row.SampleData.Split(",").Select(int.Parse) }) .SelectMany(group => group.Value.Select(value => new { group.SampleNumber, SampleData = value })).ToArray();
当前问题
当前intThinThroughoutQuery的Dump()输出中,SampleNumber并非唯一,每个SampleData项都对应重复的SampleNumber,呈现扁平的列表结构。我期望的数据结构是每个SampleNumber作为唯一键,对应一组解析后的SampleData整数集合,而非现在的重复结构。
请问我的LINQ查询能否生成每个SampleNumber唯一、对应一组SampleData的结构?
内容的提问来源于stack exchange,提问作者villasenorbritt
相关产品推荐
相关产品推荐

