我试图利用'包含'来模拟旧的SQL',其中id为(1,2,3,4)'过滤查询的方式.
但是我在使用它时遇到了一些困难,因为我的身份处于更深层次.
码:
public class Category
{
public long Id { get; set; }
public string Name { get; set; }
}
public class Characteristica
{
public Category Category { get; set; }
public int Id { get; set; }
public string Value { get; set; }
}
public class Person
{
public string Name { get; set; }
public List<Characteristica> Appearance { get; set; }
}
class Program
{
static void Main(string[] args)
{
var persons = new List<Person> …Run Code Online (Sandbox Code Playgroud) 我正在尝试制作合适的linq查询以适应我的搜索功能.
我有一个包含以下列的表:'firstname'| 'lastname'| '描述'.以下数据:'彼得'| 'Mulder'| "这是一个小小的描述."
我的"搜索"关键字可能类似于:"彼得"或"一点描述".
现在,如果我在lambda中使用以下linq表达式:
mycontext.persons
.Where(t =>
search.Contains(t.Firstname) ||
search.Contains(t.Lastname) ||
search.Contains(t.Description).Select(p => p)
.ToList();
Run Code Online (Sandbox Code Playgroud)
现在我得到了我的结果,当我使用'peter'时,但如果我使用'pete'或'一点描述',我就得不到任何结果.如何制作我的linq表达式,以便它可以在列数据中搜索匹配项?
我在lambda语法中有以下linq表达式:
var myValue = 6;
var from = 2;
var to = 8;
var res = MyList.Where(m => m.person.Id == person.Id
&& IsBetween(myValue, from, to))
.Select(x => new Person { blah blah blah })
.ToList());
Run Code Online (Sandbox Code Playgroud)
IsBetween是一个简单的通用助手方法,看看我之间是否有东西:
public bool IsBetween<T>(T element, T start, T end)
{
return Comparer<T>.Default.Compare(element, start) >= 0
&& Comparer<T>.Default.Compare(element, end) <= 0;
}
Run Code Online (Sandbox Code Playgroud)
现在我收到了这个错误,我不知道如何解决它:
LINQ to Entities无法识别方法'Boolean IsBetween [Decimal](System.Decimal,System.Decimal,System.Decimal)'方法,并且此方法无法转换为商店表达式.
我有一个10位数的整数.我需要获得该整数的第7位数.
我找到了一个数学解法来获得整数的第一个数字.
var myDigit = 2345346792;
var firstDigit = Math.Abs(myDigit);
while (firstDigit >= 10)
{
firstDigit /= 10;
}
Run Code Online (Sandbox Code Playgroud)
我如何从myDigit获得第七位数字?我试图避免强制转换为字符串并执行子字符串.我希望看到获得第七位数字的数学版本.
任何人?
我有一些List<long>长期的myIds.我正在使用id填充集合.但是,我想要删除的集合中有一些重复项.
我试过distinct()在集合上使用但没有效果.重新排序和distinct()再次申请也没有帮助.
在不编写自定义逻辑的情况下删除这些重复项的最佳方法是什么?
我试过这个:
mydIds.OrderBy(x => x).Distinct().ToList();
Run Code Online (Sandbox Code Playgroud) 我有一个 lambda 表达式,其中需要分配一个局部变量以避免每个结果集调用我的 RetrieveAge(DatetimebirthDate) 两次。
我的 lambda 表达式如下所示:
result = myList.AsEnumerable().Where(f => DateHelper.RetrieveAge(f.Birthdate) >= 20 && DateHelper.RetrieveAge(f.Birthdate) <= 40).Select(x => new Person { Name = x.Name, Id = x.Id, Alias = x.Alias }).ToList();
Run Code Online (Sandbox Code Playgroud)
我正在尝试实现以下目标:
var result = myList.AsEnumerable().Where(f => { var age = DateHelper.RetrieveAge(f.Birthdate); age >= 20 && age <= 40 }).Select(x => new Person { Name = x.Name, Id = x.Id, Alias = x.Alias }).ToList();
Run Code Online (Sandbox Code Playgroud)
但我不知道如何正确地做到这一点。任何提示或建议将不胜感激。
考虑我的以下课堂专辑:
public class Album
{
public int? Id { get; set; }
public string Name { get; set; }
public IEnumerable<Photo> Photos { get; set; }
public DateTime Registered { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我没有麻烦检索数据并填充我的相册和我的照片集.
但是现在我还想在照片集中"添加"照片项目,"添加"不被视为照片上的有效方法.
'System.Collections.Generic.IEnumerable'不包含'Add'的定义,也没有扩展方法'Add'接受类型的第一个参数....
我应该怎么做才能让它与IEnumerable一起工作?我不想改变我的财产
public List<Photo> Photos { get; set;}
Run Code Online (Sandbox Code Playgroud)
我真的需要在我的Album类上实现ICollection吗?
public class Album : ICollection<Photo> { ... }
Run Code Online (Sandbox Code Playgroud) 是否可以使用通用处理程序 (*.ashx) 返回 html,我可以在 div 标签中使用它?
就像是
<div id="foo"> [call my generic handler which returns some html to be used within this div ] </div>
Run Code Online (Sandbox Code Playgroud)
在这种情况下,它不是图像,而只是 HTML。
谷歌搜索时没有找到任何东西。
c# ×7
.net ×3
lambda ×3
linq ×2
algorithm ×1
asp.net ×1
c#-4.0 ×1
collections ×1
ienumerable ×1
math ×1