本文整理汇总了C#中Data.List.IndexOf方法的典型用法代码示例。如果您正苦于以下问题:C# List.IndexOf方法的具体用法?C# List.IndexOf怎么用?C# List.IndexOf使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Data.List
的用法示例。
在下文中一共展示了List.IndexOf方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ExecuteReader
public string ExecuteReader(string queryData)
{
try
{
var query = LinqServiceSerializer.Deserialize(queryData);
ValidateQuery(query);
using (var db = CreateDataContext())
{
var obj = db.SetQuery(new QueryContext { SqlQuery = query.Query, Parameters = query.Parameters });
using (var rd = db.ExecuteReader(obj))
{
var ret = new LinqServiceResult
{
QueryID = Guid.NewGuid(),
FieldCount = rd.FieldCount,
FieldNames = new string[rd.FieldCount],
FieldTypes = new Type [rd.FieldCount],
Data = new List<string[]>(),
};
for (var i = 0; i < ret.FieldCount; i++)
{
ret.FieldNames[i] = rd.GetName(i);
ret.FieldTypes[i] = rd.GetFieldType(i);
}
var varyingTypes = new List<Type>();
while (rd.Read())
{
var data = new string [rd.FieldCount];
var codes = new TypeCode[rd.FieldCount];
for (var i = 0; i < ret.FieldCount; i++)
codes[i] = Type.GetTypeCode(ret.FieldTypes[i]);
ret.RowCount++;
for (var i = 0; i < ret.FieldCount; i++)
{
if (!rd.IsDBNull(i))
{
var code = codes[i];
var type = rd.GetFieldType(i);
var idx = -1;
if (type != ret.FieldTypes[i])
{
code = Type.GetTypeCode(type);
idx = varyingTypes.IndexOf(type);
if (idx < 0)
{
varyingTypes.Add(type);
idx = varyingTypes.Count - 1;
}
}
switch (code)
{
case TypeCode.Decimal : data[i] = rd.GetDecimal (i).ToString(CultureInfo.InvariantCulture); break;
case TypeCode.Double : data[i] = rd.GetDouble (i).ToString(CultureInfo.InvariantCulture); break;
case TypeCode.Single : data[i] = rd.GetFloat (i).ToString(CultureInfo.InvariantCulture); break;
case TypeCode.DateTime : data[i] = rd.GetDateTime(i).ToString("o"); break;
case TypeCode.Boolean : data[i] = rd.GetBoolean (i).ToString(CultureInfo.InvariantCulture); break;
default :
{
if (type == typeof(DateTimeOffset))
{
var dt = rd.GetValue(i);
if (dt is DateTime)
data[i] = ((DateTime)dt).ToString("o");
else if (dt is DateTimeOffset)
data[i] = ((DateTimeOffset)dt).ToString("o");
else
data[i] = rd.GetValue(i).ToString();
}
else if (ret.FieldTypes[i] == typeof(byte[]))
data[i] = Convert.ToBase64String((byte[])rd.GetValue(i));
else
data[i] = (rd.GetValue(i) ?? "").ToString();
break;
}
}
if (idx >= 0)
data[i] = "\0" + (char)idx + data[i];
}
}
ret.Data.Add(data);
}
ret.VaryingTypes = varyingTypes.ToArray();
//.........这里部分代码省略.........
示例2: TOFDemodulateBlock
public TOFChannelSet TOFDemodulateBlock(Block b, int detectorIndex, bool allChannels)
{
// *** demodulate channels ***
// ** build the list of modulations **
List<string> modNames = new List<string>();
List<Waveform> modWaveforms = new List<Waveform>();
foreach (AnalogModulation mod in b.Config.AnalogModulations)
{
modNames.Add(mod.Name);
modWaveforms.Add(mod.Waveform);
}
foreach (DigitalModulation mod in b.Config.DigitalModulations)
{
modNames.Add(mod.Name);
modWaveforms.Add(mod.Waveform);
}
foreach (TimingModulation mod in b.Config.TimingModulations)
{
modNames.Add(mod.Name);
modWaveforms.Add(mod.Waveform);
}
// ** work out the switch state for each point **
int blockLength = modWaveforms[0].Length;
List<bool[]> wfBits = new List<bool[]>();
foreach (Waveform wf in modWaveforms) wfBits.Add(wf.Bits);
List<uint> switchStates = new List<uint>(blockLength);
for (int i = 0; i < blockLength; i++)
{
uint switchState = 0;
for (int j = 0; j < wfBits.Count; j++)
{
if (wfBits[j][i]) switchState += (uint)Math.Pow(2, j);
}
switchStates.Add(switchState);
}
// pre-calculate the state signs for each analysis channel
// the first index selects the analysis channel, the second the switchState
int numStates = (int)Math.Pow(2, modWaveforms.Count);
bool[,] stateSigns = new bool[numStates, numStates];
// make a BlockDemodulator just to use its stateSign code
// They should probably share a base class.
BlockDemodulator bd = new BlockDemodulator();
for (uint i = 0; i < numStates; i++)
{
for (uint j = 0; j < numStates; j++)
{
stateSigns[i, j] = (bd.stateSign(j, i) == 1);
}
}
TOFChannelSet tcs = new TOFChannelSet();
// By setting all channels to false only a limited number of channels are analysed,
// namely those required to extract the edm (and the correction term). This speeds
// up the execution enormously when the BlockTOFDemodulator is used by the
// BlockDemodulator for calculating the non-linear channel combinations.
//int[] channelsToAnalyse;
List<int> channelsToAnalyse;
if (allChannels)
{
//channelsToAnalyse = new int[numStates];
channelsToAnalyse = new List<int>();
//for (int i = 0; i < numStates; i++) channelsToAnalyse[i] = i;
for (int i = 0; i < numStates; i++) channelsToAnalyse.Add(i);
}
else
{
// just the essential channels - this code is a little awkward because, like
// so many bits of the analysis code, it was added long after the original
// code was written, and goes against some assumptions that were made back then!
int bIndex = modNames.IndexOf("B");
int dbIndex = modNames.IndexOf("DB");
int eIndex = modNames.IndexOf("E");
int rf1fIndex = modNames.IndexOf("RF1F");
int rf2fIndex = modNames.IndexOf("RF2F");
int rf1aIndex = modNames.IndexOf("RF1A");
int rf2aIndex = modNames.IndexOf("RF2A");
int lf1Index = modNames.IndexOf("LF1");
int lf2Index = modNames.IndexOf("LF2");
int sigChannel = 0;
int bChannel = (1 << bIndex);
int dbChannel = (1 << dbIndex);
int ebChannel = (1 << eIndex) + (1 << bIndex);
int edbChannel = (1 << eIndex) + (1 << dbIndex);
int dbrf1fChannel = (1 << dbIndex) + (1 << rf1fIndex);
int dbrf2fChannel = (1 << dbIndex) + (1 << rf2fIndex);
int brf1fChannel = (1 << bIndex) + (1 << rf1fIndex);
int brf2fChannel = (1 << bIndex) + (1 << rf2fIndex);
int edbrf1fChannel = (1 << eIndex) + (1 << dbIndex) + (1 << rf1fIndex);
int edbrf2fChannel = (1 << eIndex) + (1 << dbIndex) + (1 << rf2fIndex);
int ebdbChannel = (1 << eIndex) + (1 << bIndex) + (1 << dbIndex);
int rf1fChannel = (1 << rf1fIndex);
int rf2fChannel = (1 << rf2fIndex);
int erf1fChannel = (1 << eIndex) + (1 << rf1fIndex);
int erf2fChannel = (1 << eIndex) + (1 << rf2fIndex);
int rf1aChannel = (1 << rf1aIndex);
int rf2aChannel = (1 << rf2aIndex);
int dbrf1aChannel = (1 << dbIndex) + (1 << rf1aIndex);
int dbrf2aChannel = (1 << dbIndex) + (1 << rf2aIndex);
int lf1Channel = (1 << lf1Index);
//.........这里部分代码省略.........