我有一个对象(产品),其属性类型为'array',
例如product.tags = {"tag1","tag2","tag9"}
我有一个输入标签数组来过滤.
......但这不太合适:
List<string> filterTags = new List<string>() { "tag1", "tag3" };
var matches = from p in products
where p.Tags.Contains(filterTags)
select p;
Run Code Online (Sandbox Code Playgroud)
有什么建议?谢谢.
鉴于:
var s = (from p in operatorList
select p.ID, p.Name,p.Phone)
Run Code Online (Sandbox Code Playgroud)
我如何仅根据ID返回Distinct记录?
我刚刚开始使用IoC容器,如果这是一个愚蠢的问题,请道歉.
我在应用程序中有如下代码
internal static class StaticDataHandlerFactory
{
public static IStaticDataHandler CreateHandler(StaticDataUpdate staticDataUpdate)
{
if (staticDataUpdate.Item is StaticDataUpdateOffice)
{
return new OfficeUpdateHandler();
}
if (staticDataUpdate.Item is StaticDataUpdateEmployee)
{
return new EmployeeUpdateHandler();
}
if (staticDataUpdate.Item == null)
{
throw new NotImplementedException(
string.Format("No static data provided"));
}
else
{
throw new NotImplementedException(
string.Format("Unimplemented static data type of {0}", staticDataUpdate.Item.GetType().FullName));
}
}
}
Run Code Online (Sandbox Code Playgroud)
它基本上是一个简单的工厂,它返回处理输入数据的正确策略.
IoC容器是否允许我删除这样的代码?也就是说:它是否允许我根据输入参数的类型动态选择要加载的具体实现?
还是我离开这里?
C#中有别名功能,允许使用不同的程序集,包含同名的实体(类,结构,枚举).选择装配引用的装配列表时会激活它.但我在VB.NET项目中看不到任何类似的东西.VB.NET中有这样的功能吗?如果不是,为什么?
我被问到的一个问题是我有一个包含以下列的数据库表
pid - unique identifier
orderid - varchar(20)
documentid - int
documentpath - varchar(250)
currentLocation - varchar(250)
newlocation - varchar(250)
status - varchar(15)
Run Code Online (Sandbox Code Playgroud)
我必须编写ac#app将文件从currentlocation移动到newlocation并将状态列更新为"SUCCESS"或"FAILURE".
这是我的答案
使用linq创建所有记录的列表
创建一个将执行移动文件的命令对象
使用foreach,调用委托来移动文件 -
使用endinvoke捕获任何异常并相应地更新db
我被告知命令模式和代表不适合这里的法案 - 我很想思考并实施一个更有利的GoF模式.
不确定他们在寻找什么 - 在这个时代,候选人会保留很多关于头脑的信息,因为总有谷歌找到任何答案并提出解决方案.
我有一个现有的ASP.NET 2.0应用程序<UL>.我想以编程方式向其添加项目.我已经添加了ID和runat="server"属性.
我之前从未使用过LINQ,并且在使用它的应用程序中出现错误.这是Visual Studio 2008中的VB.NET(.NET 2.0)项目.
这是违规代码:
Dim orderedRows = From r In resultRows Order By r.FIELDNAME Select r
Run Code Online (Sandbox Code Playgroud)
这里是错误(名称改为通用,但准确):
Expression of type '1-dimensional array of
Company.OurLibrary.FunctionalArea.Library.StoredProcStuff.USP_MYPROC.ResultRow'
is not queryable. Make sure you are not missing an assembly
reference and/or namespace import for the LINQ provider.
C:\project\filename.vb
Run Code Online (Sandbox Code Playgroud)
所以我认识到我需要导入LINQ库. 这个链接让我在文件中添加了"Imports System.Linq",但这是一个未解决的引用.基于相同的链接,我想我需要在我的项目中添加对"System.Core"的引用,但是当我尝试添加引用时它没有被列为可用选项(也不是已经选中).
我确信我错过了一些基本的东西.有人能指出我正确的方向吗?
TL; DR:LINQ需要什么工作?
我有一个对象列表,需要根据对象的三个不同属性进行排序.例
CLass Object1{ Property1 , Property2, Property3}
ListObj = IEnumerable<Object1>
Foreach ( item in ListObj){
if (item.Property1 == true)
item goes at top of list
if(item.Property2 == true)
item goes end of list
if(item.Property3 == true)
item can go anywhere.
}
Run Code Online (Sandbox Code Playgroud)
结束列表应该是Property1 = true的对象,后跟Property2 = true的对象,后跟Property3 = true的对象
不是总增量,而是每个元素的增量.这里有一些代码来解释我的意思:
var deltaTotals = _deltaEnumerable.Select(a => a.Amount).ToList();
var oldTotals = _totalsEnumerable.Select(d => d.Amount).ToList();
// trigger change in _totalsEnumerable
// ** can LINQ do the lines below
var newTotals = totalsEnumerable.Select(d => d.Amount);
for (var i = 0; i < 7; i++) {
var newAmount = oldTotals[i] - deltaTotals[i];
Assert.That(newTotals.ElementAt(i), Is.EqualTo(newAmount));
}
Run Code Online (Sandbox Code Playgroud)
这是最后四行代码,似乎在某种程度上可能有更优雅的方式在LINQ中做.
干杯,
Berryl
如何按字母顺序对namevaluecollection进行排序?我是否必须先将其转换为另一个列表,如排序列表或Ilist或其他?如果那么我该怎么做?现在我在namevalucollection变量中包含了所有字符串.