我有一个testList包含一堆字符串的列表.我想testList在列表中不存在的情况下添加一个新字符串.因此,我需要对列表进行不区分大小写的搜索并使其有效.我不能使用,Contains因为这没有考虑到套管.ToUpper/ToLower出于性能原因,我也不想使用它.我遇到了这种方法,它起作用:
if(testList.FindAll(x => x.IndexOf(keyword,
StringComparison.OrdinalIgnoreCase) >= 0).Count > 0)
Console.WriteLine("Found in list");
Run Code Online (Sandbox Code Playgroud)
这有效,但它也匹配部分单词.如果列表包含"山羊",我不能添加"燕麦",因为它声称"燕麦"已经在列表中.有没有办法以不区分大小写的方式有效地搜索列表,其中单词必须完全匹配?谢谢
我之前从未使用过MVVM,所以我可能会遗漏一些明显的东西.当我创建一个新的Panorama应用程序时,已经有一个包含ItemViewModel和MainViewModel的ViewModel文件夹.
我认为"MainViewModel.cs"是组织全景图的文件.但是,在MainViewModel中,它有以下行:
public MainViewModel()
{
this.Items = new ObservableCollection<ItemViewModel>();
}
Run Code Online (Sandbox Code Playgroud)
ItemViewModel与全景图没有交互.然后将这些实例化为:
this.Items.Add(new ItemViewModel()
{
LineOne = "first line",
LineTwo = "second line",
LineThree = "third line"
});
Run Code Online (Sandbox Code Playgroud)
为什么ItemViewModel不是一个'模型'?它实现了INotifyPropertyChanged,但出于什么目的?我会认为MainViewModel中的ObservableCollection足以通知任何更改,如此处所示
谢谢
我有一个ObservableCollection,它包含一个Person对象.我的应用程序中有一个搜索功能,并希望在顶部显示最相关的结果.这样做最有效的方法是什么?我当前的搜索方法只是调用contains方法:
var results = (from s in userList
where s.Name.Contains(query)
select s).ToList();
Run Code Online (Sandbox Code Playgroud)
这样可以正常工作,但结果的排序顺序与它们出现的顺序相同userList.如果我搜索Pete,那么它应该先显示Pete,然后Peter再显示Peter Smith等等.它不必太复杂,因为它只会处理几千(最大)的结果.我天真的做法是先做s.Name == query,显示该项目(如果有的话),然后执行s.Name.Contains(query),删除匹配的项目并将其附加到先前的匹配结果.然而,这似乎有点遍布,所以有更好的方法吗?谢谢(ps - 在搜索时只使用名称,我不能使用SQL方法)
嘿大家.有没有办法从我的程序输出音频并将该流重定向到系统的麦克风输入'层'?我知道这可能需要一些低级别的电话被'Pinvoked',但是有没有任何文章可以帮助我.例如,如果我要将我的应用程序的输出音频流运行到Window的Sound Recorder程序中,它会认为音频来自麦克风并因此记录.我不想录制流,只是将其输出到设备的micrphone输入.谢谢你的任何想法.
我有一个WriteableBitmap,并希望用户能够绘制它,就像它是InkPresenter控件一样.实时执行此操作的最佳方法是什么?使用WriteableBitmap.Pixels,我能够访问每个像素,但是当我尝试在MouseMove事件期间编辑它们时,它似乎非常慢,并且一次只更改一个像素.是否有任何库或方法可以帮助简化此过程?谢谢
我是音频分析新手,但需要执行一项(看似)简单的任务。我有一个包含 16 位录音(单通道)且采样率为 44100 的字节数组。如何执行快速分析以获取任何给定时刻的音量?我需要计算一个阈值,因此如果它高于某个幅度(音量),则函数返回 true,否则返回 false。我以为我可以迭代字节数组并检查它的值,其中 255 是最响亮的,但这似乎不起作用,因为即使我不记录任何内容,背景噪音也会进入,并且一些数组充满了255. 任何建议都会很好。谢谢
引用某些方法时,可以使用using或显式键入整个命名空间.使用一种方法比另一种方法有任何速度优势,还是只是简单地输入整个命名空间?谢谢
c# ×7
.net ×2
audio ×2
search ×2
silverlight ×2
drawing ×1
linq ×1
list ×1
microphone ×1
mvvm ×1
namespaces ×1
stream ×1
stroke ×1
using ×1
volume ×1