Tag: linq

使用C#/ Linq累积序列的子序列

我正在尝试找到一种更好的方法来处理基于以下要求的数字序列: sequence[i]的值是它自己的值加上从sequence[0]到sequence[i-1]的累积的总和。 例如:如果序列是列表 List list = new List { 10.0, 20.0, 30.0, 40.0 }; 输出结果应该是 list[0] = 10.0 list[1] = 20.0 + 10.0 list[2] = 30.0 + 10.0 + 20.0 list[3] = 40.0 + 10.0 + 20.0 + 30.0 我知道使用多次迭代的蛮力方式,但我想知道必须有一些更好的解决方案(可能使用LINQ)。

Linq表达式找到List <List >的最大值?

是否有一个很酷的Linq表达式来查找List<List>的max int值? 正在做: int maxValue = 0; foreach(List valueRow in values) { // linq expression to get max value int value = valueRow.OfType().Max(); if (value > maxValue) { maxValue = value; } }

如何在linq中展平字典<string,List >并将键保留在结果中

你如何在linq中实现以下目标? 我觉得应该有一个Linq替代方案。 var foods = new Dictionary<string, List>(); foods.Add(“Cake”, new List() { “Sponge”, “Gateux”, “Tart” }); foods.Add(“Pie”, new List() { “Mud”, “Apple” }); foods.Add(“Roll”, new List() { “Sausage” }); var result = new List<Tuple>(); foreach (var food in foods) { foreach (var detail in food.Value) { result.Add(new Tuple(food.Key, detail)); } } ie cake pie to […]

字符在字符串数组中出现的最大出现次数

在C#中,给定数组: string[] myStrings = new string[] { “test#test”, “##test”, “######”, // Winner (outputs 6) }; 如何找到字符#出现在单个字符串中的最大出现次数? 我目前的解决方案是: int maxOccurrences = 0; foreach (var myString in myStrings) { var occurrences = myString.Count(x => x == ‘#’); if (occurrences > maxOccurrences) { maxOccurrences = occurrences; } } return maxOccurrences; 使用linq可以直接在myStrings[]数组上进行myStrings[]吗? 这可以成为一个可以在任何IEnumerable上工作的扩展方法吗?

ObjectSet .AddObject()与EntityCollection .Add()

假设我有两个EntitySets,“Teams”和“Players”。 我正在为系统添加新的团队,为了争论,让我说我从一个文件中添加了一千个团队(包含重复项)。 该系统包含100个团队开始。 我的目标是避免重复,而不为每个添加的团队调用SaveChanges()。 该过程是查询newteam尚不存在,然后添加新团队(如果不存在)。 var team = (from t in context.Teams where t.Name == newTeam.Name select t).FirstOrDefault(); if (team==null) –Add New Team 如果我使用context.Teams.AddObject(newTeam);添加context.Teams.AddObject(newTeam); 或context.AddObject(“Teams”,newTeam); team.Count()将保持为100,如果再次运行查询,var团队将为null。 但是,如果我改为使用player.Teams.Add(newTeam); 添加团队,一切都很完美,除了我必须有一个玩家添加NewTeam,该玩家将成为所有新团队的成员。 在调用player.Teams.Add(newTeam); 该查询将返回新团队。 var team = (from t in player.teams where t.Name = newTeam.Name select t).FirstOrDefault(); player.Teams.Count()会增加一个。 在第一个示例context.Teams是一个ObjectSet,而在player.Teams.Add Teams是一个EntityCollection 。 我认为这些行为会相同,但事实并非如此。 有没有办法让ObjectSet表现得像EntityCollection ? 我想在从文件中添加所有团队之后只调用一次SaveChanges。 还是有更好的方式,我没有看到? 谢谢!

将SQL转换为Linq查询

我对Linq查询很新,我只是想将我的数据库查询转换为Linq。 这是我简单的SQL查询: var query = “SELECT EnrollmentDate, COUNT(*) AS StudentCount ” + “FROM Person ” + “WHERE EnrollmentDate IS NOT NULL ” + “GROUP BY EnrollmentDate”; var data = db.Database.SqlQuery(query); 它运行正常,但是怎么可能在Linq中编写这个查询 ,我只是无法将group by语句转换为Linq。 转换为Linq似乎有些棘手。 谁能帮我这个?

发生字符串后删除文本

我有一个字符串,具有以下格式: string sample = “A, ABC, 1, ACS,,” 如你所见,这个角色有5个出现。 我需要在第4次发生后删除所有内容 ,以便最终结果为: string result = fx(sample, 4); “A, ABC, 1, ACS” 没有foreach可能吗? 提前致谢。

是否可以使用linq运行查询来搜索一段时间?

问题详情: SQL Server 2005; entity framework4.0。 我正在尝试使用linq来运行一段时间的查询。 例: 我的服务器中有以下datetime数据: 30/03/2012 12:53:22 30/03/2012 17:23:29 04/04/2012 11:10:14 04/04/2012 19:06:55 我想运行一个查询,它将在时间(12:00和20:00)之间返回所有数据,并且查询必须返回给我以下数据: 30/03/2012 12:53:22 30/03/2012 17:23:29 04/04/2012 19:06:55 或者在(11:00和13:00)之间,查询必须返回给我以下数据: 30/03/2012 12:53:22 04/04/2012 11:10:14 我怎么能用linq做到这一点? 有可能(忽略日期,只使用时间)?

使用C#中的LINQ从名称值列表中获取4个元素的组

我想循环遍历这个名称值对列表,并以4个为一组抓取它们。 数据如下: value1 1 value2 1 value3 1 value4 1 value1 2 value2 2 value3 2 value4 2 它会将其分组为包含的1个列表 value1 1 value2 1 value3 1 value4 1 和另一个包含的列表 value1 2 value2 2 value3 2 value4 2 我知道这可以通过for循环轻松完成,但我想知道是否有一个很好的方法来使用LINQ。

HashSet或Distinct用于读取对象的List 中的不同属性值

这在某种程度上与此相关( 获取C#列表中的所有唯一项 )问题。 上面的问题是谈论一个简单的数组。 我有从第三方Web服务返回的对象: public class X { public Enum y {get; set;} } 我有一个列表这些对象List data; ,总共约100条记录,但可变。 现在我想要属性y列表中的所有可能值,并且我想绑定它做一个CheckBoxList.DataSource (如果有所不同)。 这是最有效的方法吗? 我可以想到两种算法: var data = HashSet hashSet = new HashSet(xs.Select(s => sy)); chkBoxList.DataSource = data; 要么 var data = xs.Select(s => sy).Distinct(); chkBoxList.DataSource = data; 我的直觉是HashSet,但我不是百分百肯定。 如果有人有任何想法,愿意接受更好的想法?