我对LINQ简单示例有疑问。我没有收到预期的结果。这是代码:
string[] postres = { "pay de manzana", "pastel de chocolate", "manzana caramelizada", "fresas con crema", "pay de manzana y pera" };
IEnumerable<string> mispays = from p in postres
let manzanitas = (
from p1 in postres
where p1.Contains("manzana")
orderby p1
select p1)
from p2 in manzanitas
where p2.Contains("pay")
select p2;
foreach (string postre in mispays)
{
Console.WriteLine(postre);
}
我期望这个结果:
曼萨纳河
支付manzana y pera
但是我收到这个:
曼萨纳河
支付manzana y pera
曼萨纳河
支付manzana y pera
曼萨纳河
支付manzana y pera
曼萨纳河
支付manzana y pera
曼萨纳河
支付manzana y pera
因此代码重复了我预期结果的5倍。
你能告诉我为什么吗?和¿我如何收到预期的结果?
谢谢你的帮助。
参考方案
这是另一个版本。
string[] postres = { "pay de manzana", "pastel de chocolate", "manzana caramelizada", "fresas con crema", "pay de manzana y pera" };
var keyWords = new string[] {"manzana", "pay"};
var found = postres
.Where( p => keyWords.All( w => p.Contains(w)))
.ToList();
foreach (var o in found) Console.WriteLine(o);
pay de manzana
pay de manzana y pera
更新以下评论。
您知道使用“ let”的任何方式吗?
var found =
from p in postres
let keyWords = new string[] {"manzana", "pay"}
let sentence = p.ToLower()
where keyWords.All( w => sentence.Contains(w.ToLower()))
select p;
// ToLower()s are obviously optional, but it gives you an extra let ;)
当回复有时是一个对象有时是一个数组时,如何在使用改造时解析JSON回复? - java我正在使用Retrofit来获取JSON答复。这是我实施的一部分-@GET("/api/report/list") Observable<Bills> listBill(@Query("employee_id") String employeeID); 而条例草案类是-public static class…
LINQ to XML语法 - c#我有一个简单的POCO类,用于保存从XML文件提取的数据,该XML文件定义如下:public class Demographics { public string FirstName { get; set; } public string LastName { get; set; } public string MiddleName { get; set; …
Mongo汇总 - javascript我的收藏中有以下文件{ "_id": ObjectId("54490b8104f7142f22ecc97f"), "title": "Sample1", "slug": "samplenews", "cat": …
如何在Wiremock中为JUNIT匹配精确的json - java我正在使用Wiremock在Spring启动应用程序中模拟Junit的REST服务。我的问题是,我无法匹配多个匹配模式。 Junit.javaStringValuePattern pattern = WireMock.matching(".*"); givenThat(post(urlEqualTo("/softwares…
如何在JQuery中操作JSONArray - javascript我有一个php函数,它以JSON返回此代码{"0":{"title":"Dans l\u2019appartement"},"1":{"title":"A l\u2019a\u00e9roport - D\u00e9part de B\u00e9at…