我想建立一个多维列表.作为参考,我正在研究播放列表分析器.
我有一个文件/文件列表,我的程序保存在标准列表中.每个列表条目中文件的一行.
然后,我使用正则表达式分析列表以查找特定行.这些行中的一些数据/结果需要放入一个新的多维列表中; 因为我不知道我最终会得到多少结果/数据,所以我不能使用多维数组.
这是我要插入的数据:
List
(
[0] => List
(
[0] => Track ID
[1] => Name
[2] => Artist
[3] => Album
[4] => Play Count
[5] => Skip Count
)
[1] => List
(
And so on....
实例:
List
(
[0] => List
(
[0] => 2349
[1] => The Prime Time of Your Life
[2] => Daft Punk
[3] => Human After All
[4] => 3
[5] => 2
)
[1] => List
( … 我已经制作了带有选项页面的Chrome扩展程序.数据保存在localstorage中,工作正常.
Chrome不会将本地存储同步到云,只是扩展.这意味着任何用户数据都不会同步到同一个Google帐户的其他计算机.
我在http://developer.chrome.com/extensions/docs.html上找不到API,它允许我同步用户选择的首选项.
你建议用什么方法?
我想要ListBox一整套物品.虽然,每个项目应该有不同的值.因此,当用户选择项目并按下按钮时,将调用一个方法,该方法将使用选择项目具有的值.
我不想向用户透露项目值.
编辑:这不适用于ASP.NET,它适用于Windows窗体应用程序.我只是认为HTML示例很容易阅读.
我从HTML获得灵感:
<form>
<input type="radio" name="sex" value="Value1" /> Male
<br />
<input type="radio" name="sex" value="Value2" /> Female
</form>
Run Code Online (Sandbox Code Playgroud)
这也允许我使用与用户看到的值不同的值.
是否有可能创建一些Linq,生成一个包含一系列数字的所有可能组合的List?
如果输入"21",它将生成一个包含以下元素的列表:
list[0] = "21"
list[1] = "22"
list[2] = "11"
list[3] = "12"
Run Code Online (Sandbox Code Playgroud)
(不按顺序)
我知道你可以使用范围来做以下事情:
List<char> letterRange = Enumerable.Range('a', 'z' - 'a' + 1).Select(i => (Char)i).ToList(); //97 - 122 + 1 = 26 letters/iterations
Run Code Online (Sandbox Code Playgroud)
从az生成字母表.但我似乎无法转移这些知识来制作组合发生器
我已经能够用以下代码弄清楚它,但它似乎太笨重了,我相信它可以用几行完成.它确实感觉我做的是一个糟糕的解决方案.
想象一下,GetAllCombinations("4321")如果有帮助,我已经打过电话
public static String[] GetAllCombinations(String s)
{
var combinations = new string[PossibleCombinations(s.Length)];
int n = PossibleCombinations(s.Length - 1);
for (int i = 0; i < s.Length; i++)
{
String sub;
String[] subs;
if (i == 0)
{
sub = s.Substring(1); //Get …Run Code Online (Sandbox Code Playgroud) 我是一个从未真正使用.dll文件的程序员.当然,当我需要第三方软件时,例如图形库,帮助我创建图形等的库.我会将reference/ddl文件添加到我的程序中并在我的代码中使用它们.
此外,似乎你可以使用.dll来做很多不同的事情,所以我想把这个话题集中在C#上.
现在我正在开发一个消毒库(?)(我认为这是正确的术语),它将充满相关的方法,可以用各种不同的方式消毒变量.
我想知道的是:
会有什么好处:
1)将方法写入类库 - >编译/构建它 - >添加库作为程序的引用 - 需要清理一些变量吗?
或者如果我在哪里:它会完全相同:
2)在程序中创建一个新的SanitizeClass - >添加所有的sanitize方法 - >从需要清理变量的程序中的不同类中调用SanitizeClass中的方法
一般来说,我也想知道何时使用编译的类库是有利的.我在想速度,安全性,所有这一切.
任何人都可以启发我吗?:)
我有以下代码:
try
{
//Create connection
SQLiteConnection conn = DBConnection.OpenDB();
//Verify user input, normally you give dbType a size, but Text is an exception
var uNavnParam = new SQLiteParameter("@uNavnParam", SqlDbType.Text) { Value = uNavn };
var bNavnParam = new SQLiteParameter("@bNavnParam", SqlDbType.Text) { Value = bNavn };
var passwdParam = new SQLiteParameter("@passwdParam", SqlDbType.Text) {Value = passwd};
var pc_idParam = new SQLiteParameter("@pc_idParam", SqlDbType.TinyInt) { Value = pc_id };
var noterParam = new SQLiteParameter("@noterParam", SqlDbType.Text) { Value = noter };
var licens_idParam = new …Run Code Online (Sandbox Code Playgroud) 我有一个datagridview,我们将调用dataGridViewExample.
我的对象(不常见的数据类型是因为我的数据库是SQLite):
class MyObject
{
public Int64 Vnr { get; set; }
public string Name { get; set; }
public Single Price { get; set; }
public int Amount { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是相关代码:
//This form gets called with a .ShowDialog(); in my form1.
private List<MyObjecte> ExampleList = new List<MyObject>();
public MyForm()
{
dataGridViewExample.DataSource = OrdreInkøbsListe;
}
private void AddtoDataGridViewExample()
{
//Add a new MyObject to the list
ExampleList.Add(new myObject()
{
Vnr = newVnr,
Amount = newAmount,
Price = …Run Code Online (Sandbox Code Playgroud) 我里面有以下方法class DBConnection.我调用这样的方法:SQLiteConnection conn = DBConnection.OpenDB();当我想打开一个连接时,我可以执行我的查询.当我想关闭连接时,我可以调用类似的方法.
方法:
public static SQLiteConnection OpenDB()
{
try
{
//Gets connectionstring from app.config
string myConnectString =
ConfigurationManager.ConnectionStrings[
"LegMedSQLLite.Properties.Settings.LegMedSQLLiteDBConnectionString"].ConnectionString;
var conn = new SQLiteConnection(myConnectString);
conn.Open();
return conn;
}
catch (SQLiteException e)
{
MessageBox.Show(e.ToString(), "TEST");
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
这一切都很好,花花公子.问题是尝试捕获.让我们想象以下场景:
永远不会抛出异常.实际上,我偶然发现的第一个问题是当我执行我的第一个查询时 - 它认为没有这样的表,它会抛出自己的异常.我被这种奇怪的现象震惊了,但我很快发现SQLite创建了一个新的 空数据库.空是意味着没有表,没有,只是一个SQLT数据库文件与旧数据库同名,应该在那里.
这是一个问题,我希望应用程序在我尝试调用时立即知道是否存在错误(数据库未找到,已损坏,被其他进程使用等)SQLiteConnection conn = DBConnection.OpenDB();.
当然,我可以尝试在我的方法中调用File.Exists,但这似乎不是一个合适的解决方案.有帮助吗?
在python中你可以这样做:
arr = list(set(randint(-50, 50) for _ in range(10)))
Run Code Online (Sandbox Code Playgroud)
我知道如何编写一个扩展方法,用随机值填充数组,列表或任何你需要的东西.我发现这很麻烦,我真的很佩服你如何在python中做到这一点.虽然,据我所知,我只知道Enumerable.Range,哪些只能用于生成固定序列.
是否有可能在C#中?
所以我正在制定我的计划草案.
这是我的计划:
GUI
---
Business Logic
---
Data
Run Code Online (Sandbox Code Playgroud)
您应该能够毫无问题地替换任何一个GUI或该Data层.每一层都看着自己.因此GUI将调用方法,Business logic并且方法将始终返回状态和可能的一些数据.应该始终在GUI层中确定GUI应如何响应数据.业务逻辑应该对此没有影响.因此,与GUI和业务逻辑的关系已经得到解决.我希望你能跟着我.
现在换一些更具体的东西.我对数据层的计划是使用数据库.现在,Business Logic应该如何从数据层调用方法?
也许我应该创建一个枚举,它对应于数据层知道的不同硬编码SQL查询?
例如
Datalayer.GetResults(Queries.GetAllCustomersIDs);
Run Code Online (Sandbox Code Playgroud)
查询是枚举.
如果这是正确的方法,GetResults应该返回什么?一个字符串数组?但是如果查询具有多维数据呢?
我应该使用2种通用方法吗?
Datalayer.GetSingleDimensionResults(SingleDimensionQueries.GetAllCustomersIDs);
Datalayer.GetMultipleDimensionResults(MultiDimensionQueries.GetAllCustomers);
Run Code Online (Sandbox Code Playgroud)
或者我应该对每种数据请求进行查询?
Datalayer.GetAllCustomerIDs;
DataLayer.GetAllCustomers;
Run Code Online (Sandbox Code Playgroud)
等等
c# ×8
linq ×2
winforms ×2
architecture ×1
class ×1
combinations ×1
datagridview ×1
dll ×1
javascript ×1
list ×1
parameters ×1
random ×1
sqlite ×1
sync ×1