我需要对一个集合进行排序.例如,我有
Austin 12/3/2012
Sam 100 12/3/2012
Sam 200 14/3/2012
Bubly 300 12/3/2012
Bubly 300 15/3/2012
ram 100 13/3/2012
Run Code Online (Sandbox Code Playgroud)
现在,如果排序顺序是Name,则datetime然后输出
Austin 12/3/2012
Bubly 12/3/2012
Bubly 15/3/2012
ram 13/3/2012
sam 12/3/2012
sam 14/3/2012
Run Code Online (Sandbox Code Playgroud)
如果他的排序顺序是Datetime,那么它应该是
12/3/2012 austin
12/3/2012 bubly
12/3/2012 sam
13/3/2012 ram
14/3/2012 sam
15/3/2012 bubly
Run Code Online (Sandbox Code Playgroud)
因此对于其他项目.我该怎么做呢 ?如何使用列的顺序进行排序.
在我的映射逻辑层(Model to ViewModel)中,我尝试SelectListItem在编辑视图中填充一个HTML.DropDownListFor帮助器.
我尝试使用以下代码示例中的查询来检索品牌名称列表以填充SelectListItem,但触发了以下异常:
已经有一个与此命令关联的打开DataReader,必须先关闭它.
public class MedicalProductMapper
{
private MvcMedicalStoreDb _db; // DataContext class
public MedicalProductMapper(MvcMedicalStoreDb db)
{
_db = db;
}
public MedicalProductViewModel GetMedicalProductViewModel(MedicalProduct source)
{
MedicalProductViewModel viewModel = new MedicalProductViewModel();
viewModel.ID = source.ID;
viewModel.Name = source.Name;
viewModel.Price = source.Price;
viewModel.BrandID = source.BrandID;
// This following line produces the exception
viewModel.BrandName = _db.Brands.Single(b => b.ID == source.BrandID).Name;
var queryBrands = from b in _db.Brands
select b;
viewModel.BrandSelectListItem = queryBrands as IEnumerable<SelectListItem>;
return viewModel;
}
} …Run Code Online (Sandbox Code Playgroud) 我有List<Item> OldItems = new List<Item>,我想移动的前10项的OldItems到NewItems这是List<Item> NewItems= new List<Item>
有类似的东西吗?
NewItems.AddRange(OldItems.<First10Items>);
OldItems.Delete(<First10Items>);
Run Code Online (Sandbox Code Playgroud) 我使用这种方法从EF获取每一页数据:
public IEnumerable<MyObj> GetByPage(int page, int perPage)
{
return context.MyObj.Skip((page - 1) * perPage).Take(perPage);
}
Run Code Online (Sandbox Code Playgroud)
我想知道,这将获取的代码的所有行MyObj的内存和存储,然后将Skip和Take或全部上面的代码将转换为SQL命令?
如果所有第一将存储在内存中,我如何使用LINQ到实体不使用的内存Skip和Take?
我的目标是创建一个与右侧或左侧相同行数的列表,而不管左列或右列是否比另一列短.
考虑这两个查询:
var result1 = (from f in list2
join b in list1 on f.index equals b.index into bf
from x in bf.DefaultIfEmpty()
select new { box = (x == null ? String.Empty : x.b), file = f.f });
var result2 = (from b in list1
join f in list2 on b.index equals f.index into bf
from x in bf.DefaultIfEmpty()
select new { l1 = x.f, l2 = (x == null ? String.Empty : b.b) });
Run Code Online (Sandbox Code Playgroud)
一个在list1上测试null并填充一个空字符串,另一个在list2上测试null并填充一个空字符串.
我想找一个两者都可能发生的例子.顺序并不重要,只是左边的每个值或空字符串都有一个值或右边的空字符串.
具有以下结构
[[1,10],[2,20],[5,45],[10,34]]
Run Code Online (Sandbox Code Playgroud)
这个foreach循环找到匹配"planYear"的第一个元素.如果planYear = 5,则将选择第三个元素值"45".
List<object> gifts = gifts;
foreach (List<object> item in gifts)
{
if (item[0] == planYear)
{
gift = Convert.ToDouble(item[1]);
break;
}
}
Run Code Online (Sandbox Code Playgroud)
什么是类似的Linq声明来实现同样的结果?
给出表格如下:
表格1
表2
给定UI允许用户进行fency查询:
结果datagridview与everyfields.
我想建立条件查询,好像不是"任何"添加这个条件.
考虑到这一点,简单的LINQ查询不适用:
Table2
.Where(x => x.stringfield1 == dropdwonlist1.SelectedValue)
.Where(x => x.stringfield2 == dropdwonlist2.SelectedValue)
.Where(x => x.stringfield3 == dropdwonlist3.SelectedValue)
(...)
Run Code Online (Sandbox Code Playgroud)
文档中有表达式树,但看起来太多了.
有最简单的方法来构建我的动态查询吗?
由于所有实体都标记了谁创建/修改了记录,我们是否可以将Person实体视为所有实体的聚合根?
也就是说,引用Person的所有实体都将成为Person的集合,例如
public class Person
{
public virtual int PersonId { get; set; }
public virtual string Lastname { get; set; }
public virtual IList<OrderHeader> CreatedOrders { get; set; }
public virtual IList<OrderHeader> ModifiedOrders { get; set; }
// Other entities that have a reference on Person will be mapped as a collection under
// the Person entity
}
public class OrderHeader
{
public virtual int OrderId { get; set; }
public virtual DateTime OrderDate { get; set; }
public …Run Code Online (Sandbox Code Playgroud) 我是初学者使用lambda表达式.
我有一个经销商名单,foreach经销商我必须计算等级.
要求是将等级计算分成单独的方法.
所以我正在编写以下两种方法,但是我无法将参数传递给CalculateGrade()方法,
public IEnumerable<Dealers> GetDealerGrades(IEnumerable<Dealers> gradeData)
{
return gradeData
.GroupBy(row => new { row.Name })
.Select(g => new Dealers
{
Name = g.Key.Name,
TotalPoints = CalculateGrade(x => Convert.ToDouble(x.RecievedPoints),
y => y.MaxPoints,
z => Convert.ToDouble(z.Weightage))
})
.ToList();
}
private double CalculateGrade(double d1, int d2, double d3)
{
return ( d1 / d2 )
* d3 == 0.00 ? 1
: d3;
}
Run Code Online (Sandbox Code Playgroud)
有人可以建议如何传递参数,或者如何传递lamda表达式并计算等级?
提前谢谢了...
我想递归迭代一个日期的数字,求和它们,然后计算第一个总和中各个数字的另一个总和.
例如,DOB 1547年8月15日(19/08年8月15日)
1 + 5 + 0 + 8 + 1 + 9 + 4 + 7 = 35
3 + 5 = 8
答案:8
LINQ的.Aggregate()功能对我有很大帮助......
DOB.toString().Aggregate((a,b)=>(int)a+(int)b)
Run Code Online (Sandbox Code Playgroud)
...但结果35 :(
我想要一个递归LINQ调用,结果总是一位数.