是否有一个命令可以获取字符串中字符的第三个索引?例如:
error: file.ext: line 10: invalid command [test:)]
Run Code Online (Sandbox Code Playgroud)
在上面的句子中,我想要第3个冒号的索引,10个旁边的那个.我怎么能这样做?我知道string.IndexOf和string.LastIndexOf,但在这种情况下我想得到第三次使用时字符的索引.
我试图使用SQL Server命名参数ObjectContext.ExecuteStoreQuery和ObjectContext.ExecuteStoreCommand直接调用存储过程或函数.
SQL Server命名参数与实体框架命名参数不同 - 它们允许我执行与此类似的查询:
EXEC sp_GetData @firstParameter = 1, @thirdParameter = 2, @secondParameter = 1
Run Code Online (Sandbox Code Playgroud)
此查询中的参数顺序无关紧要,而与按顺序计算的实体框架命名参数相反.
我想在实体框架中使用SQL Server命名参数,以便在存储过程中更改参数的顺序时,调用它的实体框架代码不会受到影响.
我刚刚开始使用AngularJS我正在开发的应用程序,一切进展顺利但我需要一种保护路由的方法,以便在没有登录时不允许用户进入该路由.我理解的重要性在服务方面也要保护,我会照顾这个.
我找到了许多保护客户端的方法,似乎使用了以下内容
$scope.$watch(
function() {
return $location.path();
},
function(newValue, oldValue) {
if ($scope.loggedIn == false && newValue != '/login') {
$location.path('/login');
}
}
);
Run Code Online (Sandbox Code Playgroud)
我在哪里需要把这个,在.run中app.js?
我找到的另一种方法是使用指令并使用on-routechagestart
信息在这里 http://blog.brunoscopelliti.com/deal-with-users-authentication-in-an-angularjs-web-app
我真的对任何人的推荐方式的帮助和反馈感兴趣.
我有一个基本抽象类,也实现了一个特定的接口.
public interface IMovable<TEntity, T>
where TEntity: class
where T: struct
{
TEntity Move(IMover<T> moverProvider);
}
public abstract class Animal : IMovable<Animal, int>
{
...
public virtual Animal Move(IMover<int> moverProvider)
{
// performs movement using provided mover
}
}
Run Code Online (Sandbox Code Playgroud)
然后我继承了一些类,其中一些必须覆盖基类的接口实现方法.
public class Snake : Animal
{
...
public override Animal Move(IMover<int> moverProvider)
{
// perform different movement
}
}
Run Code Online (Sandbox Code Playgroud)
我的接口方法在移动后返回相同的对象实例,因此我可以使用链接或直接在return语句中执行某些操作而不使用其他变量.
// I don't want this if methods would be void typed
var s = GetMySnake();
s.Move(provider); …Run Code Online (Sandbox Code Playgroud) 我的解决方案有这些项目:
DAL,BL和WEB都参考了很棒的DTO.
该过程通常以这种方式执行:
我的DTO能够根据自己的状态(属性值)验证自己.但是现在我遇到了问题,但事实并非如此.我需要他们使用BL(以及因此DAL)进行验证.
我的现实生活中的例子:用户注册和WEB获得验证的用户DTO.有问题的部分是username验证.应根据数据存储检查其唯一性.
我该怎么做?
还有其他信息表明所有DTO都实现了IoC和TDD 的接口(即UserDTO实现IUser).两者都是DTO项目的一部分.
Compilation errorPartial classes can't span assemblies.ActionFilter,可以根据外部条件验证对象.这个将在WEB项目中创建,因此可以看到将在此处使用的DTO和BL.我正在使用LINQ to Entities来显示分页结果.但我在使用的组合问题Skip(),Take()和OrderBy()调用.
一切正常,除了OrderBy()分配得太晚.之后的结果集已被削减它的执行Skip()和Take().
因此,每个结果页面都按顺序排列.但是,对一页数据进行排序,而不是对整个集合进行排序,然后使用Skip()和限制这些记录Take().
如何设置这些语句的优先级?
var query = ctx.EntitySet.Where(/* filter */).OrderByDescending(e => e.ChangedDate);
int total = query.Count();
var result = query.Skip(n).Take(x).ToList();
Run Code Online (Sandbox Code Playgroud)
一种可能的解决方案是将聚簇索引应用于按列排序,但此列经常更改,这会降低插入和更新时的数据库性能.我真的不想那样做.
我运行ToTraceString()了我的查询,我们实际上可以看到order by应用于结果集.不幸的是最后.:(
SELECT
-- columns
FROM (SELECT
-- columns
FROM (SELECT -- columns
FROM ( SELECT
-- columns
FROM table1 AS Extent1
WHERE EXISTS (SELECT
-- single constant column
FROM table2 AS Extent2
WHERE (Extent1.ID = …Run Code Online (Sandbox Code Playgroud) 我有人和地方数据如下:
Person 实体有
IList<DateRangePlaces> 每个人都有
IList<Place> 可能的地方 Schedule日模式为ie.10天可用4不可用在特定的DateRangePlaces日期范围内,人们必须遵守模仿Schedule人是否可以去某个特定的地方.
Place 实体有
IList<DateRangeTiming> 每个定义每个日期范围内的开/关时间重叠日期范围可用作LIFO.因此,对于之前已经定义的每一天,新的时间定义都会优先考虑.
现在我需要做这样的事情(在伪代码中):
for each Place
{
for each Day between minimum and maximum date in IList<DateRangeTiming>
{
get a set of People applicable for Place and on Day
}
}
Run Code Online (Sandbox Code Playgroud)
这意味着执行我的任务的步骤数约为:
Σ (地方)(Σ (天) ×Σ (人))
这对我的理解是
O(x×y x ×z)
并且可能与此算法的复杂性近似:
O(n 3)
我不是理论专家,所以你可以自由地纠正我的假设.真实的是,这种复杂性绝对是不可接受的,特别是考虑到我将在很多地方和人的长日期范围内运作.
从公式近似中我们可以看到人集会被多次迭代.因此,我想至少优化这一部分.为了缓解事情,我改变了一点
Person.IList<DateRangePlaces>.IList<Place>
Run Code Online (Sandbox Code Playgroud)
至
Person.IList<DateRangePlaces>.IDictionary<int, Place>
Run Code Online (Sandbox Code Playgroud)
无论一个人是否可以在特定日期到某个地方,这会给我一个更快的结果,因为我只会检查是否Place.Id存在于字典中而不是IList.Where()每次都必须扫描整个列表的LINQ子句.
您是否可以建议我可以在算法中实现任何其他优化,以使其更快,甚至在大O符号方面使其更简单?
您将使用哪种内存结构类型(列表,字典,堆栈,队列......)来提高性能?
我有一个使用Razor视图引擎的MVC 3 Web应用程序.我想扩展默认编辑器模板,所以我想将其他HTML5属性添加到input元素中autofocus.
我AdditionalMetadataAttribute用来指定我的实体上的某些属性是自动聚焦:
public class MyEntity
{
public int Id { get; set; }
[Required]
[AdditionalMetadata("autofocus", true)]
[DataType(DataType.Text)]
public string Name { get; set; }
...
}
Run Code Online (Sandbox Code Playgroud)
由于视图脚手架使用EditorFor方法我决定一起玩,并希望覆盖默认的String.cshtml模板,以便它还可以添加任何其他元数据作为属性.玩游戏意味着我不想使用TextBoxFor我可以控制输入属性的地方.
这是我略微更改的String.cshtml,它将所有其他元数据属性添加为输入HTML属性:
@{
// System.Diagnostics.Debugger.Break();
this.ViewData.ModelMetadata.AdditionalValues.Add("class", "text-box single-line");
}
@Html.TextBox(string.Empty, ViewContext.ViewData.TemplateInfo.FormattedModelValue, this.ViewData.ModelMetadata.AdditionalValues)
Run Code Online (Sandbox Code Playgroud)
此模板应input type=text使用相同的CSS类进行相同的渲染,但如果提供了任何其他属性,则还应使用其他属性.
然后我把这个文件放在〜/ Views/Shared/EditorTemplates /文件夹中,但似乎这个模板永远不会被拾取,因为我得到的只是默认的输入文本框.
我一直在使用新的Web API 2(看起来非常有前途)但我有点头疼让一些路线工作.当我有GetAllUsers/GetUser(int id)时,一切正常,但是当我添加GetUserByName(字符串名称)和/或GetUserByUsername(字符串用户名)时,事情开始令人毛骨悚然.我知道int将是第一个,我可以重新排序路线,但让我们想象下面的场景:
用户可以拥有有效username=1234或name=1234(我知道它不太可能但我们需要防止任何可能的情况)并且我们可能在数据库中具有有效的1234 ID并且所有路由将被混淆.
也许这是我们需要在新的WebAPI 2上使用的东西,所以我想我可以带来一个"解决方法",将过滤器作为查询字符串传递给同一控制器中的不同操作,例如api/users/?username=1234(GetUserByUsername)或api/users/?name=1234(GetUserByName)
但我不能让查询字符串通过......实际上上面的任何查询字符串选项都被GetAllUsers捕获.
有没有人对这种情况有任何建议/解决方案?
非常感谢
c# asp.net-mvc asp.net-web-api asp.net-web-api-routing asp.net-mvc-5
主要是当我们缩短/截断文本内容时,我们通常只是在特定字符索引处截断它.无论如何,HTML已经很复杂,但我想div使用不同的措施截断我的HTML内容(使用内容可编辑生成):
N将用作截断起始点限制的字符索引N字符长(仅文本;不计算标签); 如果不是,它将只返回整个内容N-X到N+X字符位置(文字只)并搜索块的节点的端部; X是预定义的偏移值,可能N/5是N/4;NN并在该位置截断的索引.我的内容可编辑生成的内容可能包含段落(带换行符),预先格式化的代码块,块引号,有序和无序列表,标题,粗体和斜体(它们是内联节点,不应计入截断过程)等.实现当然会定义哪些元素特别是可能的截断候选者.标题即使它们是块HTML元素也不会被视为截断点,因为我们不需要寡居标题.段落,列出单个项目,整个有序和无序列表,块引号,预格式化块,无效元素等都是好的.标题和所有内联块元素都不是.
让我们把这个stackoverflow问题作为我想要截断的HTML内容的一个例子.我们将截断限制设置为1000,偏移量为250个字符(1/4).
此DotNetFiddle显示此问题的文本,同时还在其中添加限制标记(|MIN|表示字符750,|LIMIT|表示字符1000 |MAX|,表示字符1250).
从示例中可以看出,两个块节点与字符1000之间最接近的截断边界在</OL>和之间P(我的内容可编辑生成...).这意味着我的HTML应该在这两个标记之间被截断,这将导致内容文本明智地少于1000个字符,但保持截断的内容有意义,因为它不会在某些文本段落的某个地方截断.
我希望这能解释事情应该如何与这个算法相关.
我在这里看到的第一个问题是我正在处理像HTML这样的嵌套结构.我还必须检测不同的元素(只有块元素,没有内联元素).最后但并非最不重要的是,我将只计算字符串中的某些字符并忽略那些属于标记的字符.
N并转换回HTML如何处理这种截断算法?我的头似乎太累了,无法达成共识(或解决方案).
c# ×5
asp.net-mvc ×2
string ×2
.net ×1
angularjs ×1
big-o ×1
devart ×1
dotconnect ×1
extract ×1
generics ×1
html ×1
html5 ×1
indexing ×1
inheritance ×1
iterator ×1
linq ×1
mysql ×1
razor ×1
sql-server ×1
truncate ×1
validation ×1
xval ×1