gpt4 book ai didi

c# - Silverlight 从 'dumb' 服务器按需加载引用数据

转载 作者:行者123 更新时间:2023-11-30 12:36:58 26 4
gpt4 key购买 nike

我有一个包含 300,000 个单词及其出现频率的列表的文本文件。每行的格式为 Word:FequencyOfOccurence。我希望可以从 C# 代码中访问此信息。我无法对列表进行硬编码,因为它太长了,而且我不确定如何从服务器上的文件访问它。理想情况下,我希望仅在使用信息时才下载信息(以节省带宽),但这不是高优先级,因为文件不是太大并且互联网速度总是在增加。它不需要可用于绑定(bind)。构建项目后,无需编辑这些信息。

最佳答案

这是另一种选择。压缩文件并将其粘贴到应用程序 XAP 旁边的 clientBin 文件夹中。然后在应用程序中需要内容的位置执行如下操作:-

 public void GetWordFrequencyResource(Action<string> callback)
{
WebClient client = new WebClient();
client.OpenReadAsync += (s, args) =>
{
try
{
var zipRes = new StreamResourceInfo(args.Result, null)
var txtRes = Application.GetResourceStream(zipRes, new Uri("WordFrequency.txt", UriKind.Relative));
string result = new StreamReader(txtRes.Stream).ReadToEnd();

callback(result);
}
catch
{
callback(null); //Fetch failed.
}

}
client.OpenReadAsync(new Uri("WordFrequency.zip", UriKind.Relative"));
}

用法:-

 var wordFrequency = new Dictionary<string, int>();
GetWordFrequencyResource(s =>
{
// Code here to burst string into dictionary.
});
// Note code here is asynchronous with the building of the dictionary don't attempt to
// use the dictionary here.

以上代码允许您以高效的 zip 格式存储文件,但不能存储在 XAP 本身中。因此,您可以按需下载它。它利用了 XAP zip 文件这一事实,所以 Application.GetResourceStream它旨在从 XAP 文件中提取资源,可用于 zip 文件。

顺便说一句,我实际上并不是建议您使用字典,我只是将字典用作简单示例。实际上,我会想象文件是按排序顺序排列的。如果是这种情况,您可以使用 KeyValuePair<string, int>对于每个条目,但创建一个自定义集合类型,将它们保存在数组或 List 中然后使用一些二进制搜索方法对其进行索引。

关于c# - Silverlight 从 'dumb' 服务器按需加载引用数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2261996/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com