正如我在标题上所说的那样.我只是想知道在使用图像文件和绘制矢量形状(或路径)之间哪个更好.我知道使用矢量对外观更好,但性能如何.
如果这取决于案件.谁能解释一下.
(这个问题可能包括WP7,Silverlight,WPF甚至是一般情况.)
我正在编程一个程序来搜索列表中的名称,即使关键字不在名称前面我也需要找到它们(这就是我的意思是非前缀)
例如,如果我的列表是乐器,我在搜索文本框中键入"guit".
它应该找到名称"吉他,Guitarrón,原声吉他,低音吉他,......"
或类似Longdo Dictionary的搜索建议.
这是我简单而愚蠢的算法(这就是我所能做的)
const int SEARCHROWLIMIT = 30;
private string[] DoSearch(string Input, string[] ListToSearch)
{
List<string> FoundNames = new List<string>();
int max = 0;
bool over = false;
for (int k = 0; !over; k++)
{
foreach (string item in ListToSearch)
{
max = (max > item.Length) ? max : item.Length;
if (k > item.Length) continue;
if (k >= max) { over = true; break; }
if (!Input.Equals("Search")
&& …Run Code Online (Sandbox Code Playgroud) 我想搜索音乐乐器,其中包含我在帖子中提到的信息名称,类别和原点.
但是现在我想通过相似性/相等性对结果进行排序/分组,例如.如果我有清单
{Drum,Grand Piano,Guitar,Guitarrón,Harp,Piano} <<按名称排序
如果我查询"p",结果应该是{Piano,Grand Piano,Harp}
但是由于源列表的顺序,它首先显示了Harp
如果我将{Grand Piano}添加到列表并查询"钢琴"
,结果应该像{Piano,Grand Piano}
或查询"guitar"它应该是{Guitar,Guitarrón}
这是我的代码
static IEnumerable<MInstrument> InstrumentsSearch(IEnumerable<MInstrument> InstrumentsList, string query, MInstrument.Category[] SelectedCategories, MInstrument.Origin[] SelectedOrigins)
{
var result = InstrumentsList
.Where(item => SelectedCategories.Contains(item.category))
.Where(item => SelectedOrigins.Contains(item.origin))
.Where(item =>
{
if (
(" " + item.Name.ToLower()).Contains(" " + query.ToLower())
|| item.Name.IndexOf(query) != -1
)
{
return true;
}
return false;
}
)
.Take(30);
return result.ToList<MInstrument>();
}
Run Code Online (Sandbox Code Playgroud)
或者结果可能就像我自己发明的旧算法,我称之为"按顺序出现",
这对我来说还可以.
而进一步的事情是我需要搜索名称,类别或原点,如.
如果我输入"意大利",它应该找到来自意大利的钢琴或其他东西.
或者,如果我键入"string",它应该找到吉他.
有没有办法做那些事情,请告诉我.
提前致谢.
我不确定STAR字的清晰度.
我正在使用c#中的linq-to-object实现一个搜索方法.
我希望像大多数搜索应用程序或网络一样使用*(星标)运算符进行搜索.
例如,
如果我输入"p*",结果应该是以"p"开头的所有内容.
它应该适用于中间的前缀星,后缀星或星.
如果搜索可以使用
" - "(减号/非)运算符
或"+"(加/或)运算符
或"AND"运算符,那将会很棒
提前致谢.
我正在研究.NET C#(特别是Xamarin.Forms).我不太了解编译器/运行时如何ConditionalAttribute在幕后工作.
如果我有一个System.Diagnostics.ConditionalAttribute定义的方法.像这样的东西:
[System.Diagnostics.Conditional("DEBUG")]
public void LogDebug(string tag, string message, params object[] args)
{
DoSomeThing(tag, message);
SomeLogLibrary.Log($"[{tag}] {message}", args);
}
Run Code Online (Sandbox Code Playgroud)
我称之为
LogDebug("Log data={0}", Newtonsoft.Json.JsonConvert.SerializeObject(somedata));
Run Code Online (Sandbox Code Playgroud)
问题是:SerializeObject被叫时何时DEBUG没有定义?
重要的是,SerializeObject或者其他一些方法只是将其打印出来进行日志记录(我认为序列化对象是一项艰苦的工作).除非我正在调试,否则我不希望它工作.
谢谢.
c# ×4
search ×3
linq ×2
performance ×2
.net ×1
autosuggest ×1
memory ×1
silverlight ×1
vector ×1
wpf ×1